explicit bad_expected_access(E e); // (1) C++23
constexpr explicit bad_expected_access(E e); // (1) C++26
bad_expected_access(const bad_expected_access&); // (2) C++23
constexpr bad_expected_access(const bad_expected_access&); // (2) C++26
bad_expected_access(bad_expected_access&&); // (3) C++23
constexpr bad_expected_access(bad_expected_access&&); // (3) C++26
概要
- (1) : エラー値を
std::move(e)
で初期化する。 - (2) : コピーコンストラクタ。
- (3) : ムーブコンストラクタ。
例
#include <cassert>
#include <expected>
int main()
{
std::bad_expected_access<int> ex{42};
assert(ex.error() == 42);
}
出力
バージョン
言語
- C++23
処理系
- Clang: 16.0 ✅
- GCC: 12.1 ✅
- ICC: ??
- Visual C++: ??
関連項目
参照
- P0323R12 std::expected
- P3378R2
constexpr
exception types- C++26で
constexpr
対応した
- C++26で