template <constexpr-param T, constexpr-param R>
constexpr auto operator/=(this T self, R y) noexcept;
概要
constant_wrapperが保持する値に対して、/=による除算の複合代入をおこなう。
戻り値
constant_wrapper<(T::value /= R::value)>{}を返す。
備考
constant_wrapperが保持するvalueはconstであるため、保持する値そのものを変更する式(++value、value op= x、value = x)は不適格となる。- したがって、このオーバーロードは説明用基底クラス
cw-operatorsのインターフェースとして宣言されているものの、constant_wrapperに対してはオーバーロード解決に参加せず、使用できない。
バージョン
言語
- C++26
処理系
- Clang: 23 ✅
- GCC: 16.1 ✅
- Visual C++: 2026 Update 2 ❌
関連項目
参照
- P2781R9
std::constant_wrapper - P3978R3
constant_wrappershould unwrap on call and subscript - LWG Issue 4383.
constant_wrapper's pseudo-mutators are underconstrained- C++26で、擬似変更演算子の戻り値型を
constant_wrapper<(++T::value)>のような直接形とすることで、変更操作が定数式にならない型に対してハードエラーではなくSFINAEで除外される(SFINAEフレンドリになる)よう修正された
- C++26で、擬似変更演算子の戻り値型を