constexpr operator decltype(value)() const noexcept;
概要
保持する値valueへの暗黙の変換をおこなう。これにより、constant_wrapperを通常の値として扱える。
変換先の型decltype(value)は、メンバ変数valueの型である。包んでいる値Xがクラス型であればconst value_type&、スカラー型であればconst value_typeとなる。
戻り値
valueを返す。
例
出力
バージョン
言語
- C++26
処理系
- Clang: 23 ✅
- GCC: 16.1 ✅
- Visual C++: 2026 Update 2 ❌
関連項目
参照
- P2781R9
std::constant_wrapper - P3978R3
constant_wrappershould unwrap on call and subscript - P4206R0 Revert string support in
std::constant_wrappervalueの定義が変更されたことにともない、変換先の型が、包んでいる値がスカラー型である場合に参照ではなく値となった。仕様としてはC++29に導入されるが、C++26に対する欠陥報告 (DR) である
- LWG Issue 4468.
operator decltype(auto)is ill-formed- この変換演算子はP2781R9では
operator decltype(auto)()と宣言されていたが、CWG 1670により変換関数の型指定子としてdecltype(auto)を書くことは不適格であるため、operator decltype(value)()へ修正された(変換先の型は変わらない構文上の修正)
- この変換演算子はP2781R9では