// expected<cv void, E>部分特殊化
friend constexpr void swap(expected& x, expected& y)
noexcept(noexcept(x.swap(y)));
概要
2つのexpected
オブジェクトを入れ替える。
効果
x.swap(y);
戻り値
なし
例
#include <cassert>
#include <expected>
int main()
{
std::expected<void, int> x;
std::expected<void, int> y = std::unexpected{42};
assert(x.has_value() && y.error() == 42);
std::swap(x, y);
assert(x.error() == 42 && y.has_value());
}
xxxxxxxxxx
#include <cassert>
#include <expected>
int main()
{
std::expected<void, int> x;
std::expected<void, int> y = std::unexpected{42};
assert(x.has_value() && y.error() == 42);
std::swap(x, y);
assert(x.error() == 42 && y.has_value());
}
出力
バージョン
言語
- C++23
処理系
- Clang: 16.0 ✅
- GCC: 12.1 ✅
- ICC: ??
- Visual C++: ??