最終更新日時: 2024年01月21日 10時52分48秒 (JST)
yoh が更新

履歴 編集

function
<mdspan>

# std::mdspan::swap (非メンバ関数)(C++23)

    friend constexpr void swap(mdspan& x, mdspan& y) noexcept;

## 概要

2つの`mdspan`オブジェクトを入れ替える。

## 効果

説明専用のメンバ変数`ptr_`, `map_`, `acc_`に対して、以下と等価

    swap(x.ptr_, y.ptr_);
    swap(x.map_, y.map_);
    swap(x.acc_, y.acc_);

## 例外

投げない

## 例

    #include <cassert>
    #include <mdspan>

    using Matrix = std::mdspan<double, std::dextents<size_t, 2>>;

    int main()
    {
      double arr1[] = {1, 2, 3, 4, 5, 6};
      double arr2[] = {4, 3, 2, 1};
      Matrix mat1{arr1, 2, 3};
      Matrix mat2{arr2, 1, 4};

      swap(mat1, mat2);
      assert(mat1.data_handle() == arr2);
      assert(mat1.size() == 4);
      assert(mat2.data_handle() == arr1);
      assert(mat2.size() == 6);
    }

### 出力

## バージョン

### 言語

- C++23

### 処理系

- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??

## 参照

- P0009R18 MDSPAN