最終更新日時(UTC):
が更新

履歴 編集

function
<tuple>

std::tuple::swap(C++11)

void swap(tuple& rhs) noexcept(see below);           // (1) C++11
constexpr void swap(tuple& rhs) noexcept(see below); // (1) C++20

constexpr void
  swap(const tuple& rhs) const noexcept(see below);  // (2) C++23

概要

  • (1) : 他のtupleオブジェクトと中身を入れ替える。
  • (2) : プロキシ参照であるtuple同士で、参照先の値を入れ替える。

要件

  • (1) : tupleの全ての要素型がswap可能であること。
  • (2) : C++23 : (is_swappable_v<const Types> && ...) == trueであること。

効果

  • (1) : 自身のインスタンスの全ての要素を、rhsの全ての要素と入れ替える
  • (2) : 自身のインスタンスの各要素の参照先の値と、他のプロキシ参照tupleの各要素の参照先の値とを入れ替える。

戻り値

なし

例外

  • (1) : tupleの全ての要素型が、例外を投げないswapを持っている場合、この関数は例外を投げない
  • (2) : C++23 : (is_nothrow_swappable_v<const Types> && ...) == trueであること。

#include <string>
#include <tuple>
#include <cassert>

int main()
{
  std::tuple<int, char, std::string> a(1, 'a', "hello");
  std::tuple<int, char, std::string> b(2, 'b', "good-bye");

  a.swap(b);

  assert(a == std::make_tuple(2, 'b', "good-bye"));
  assert(b == std::make_tuple(1, 'a', "hello"));
}

出力

バージョン

言語

  • C++11

処理系

参照