---
name: "std::indirectly_swappable"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/std::indirectly_swappable/3cxx"
---

# std::indirectly\_swappable(3cxx)

\[alg.req.ind.swap\], concept indirectly\_swappable

## NAME

std::indirectly\_swappable - \[alg.req.ind.swap\], concept `indirectly_swappable`

## SYNOPSIS

`#include <iterator>`

## Concept definition

```
template<typename _I1, typename _I2 _I1>
concept std::indirectly_swappable =  indirectly_readable<_I1> && indirectly_readable<_I2>
      && requires(const _I1 __i1, const _I2 __i2)
      {
        ranges::iter_swap(__i1, __i1);
        ranges::iter_swap(__i2, __i2);
        ranges::iter_swap(__i1, __i2);
        ranges::iter_swap(__i2, __i1);
      }
```

## Detailed Description

\[alg.req.ind.swap\], concept `indirectly_swappable`

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
