- utility[meta header]
- std[meta namespace]
- constant_wrapper[meta class]
- function template[meta id-type]
- cpp26[meta cpp]
template <constexpr-param L, constexpr-param R>
friend constexpr auto operator==(L x, R y) noexcept;2つのconstant_wrapperが保持する値を==で比較する。
constant_wrapper<(L::value == R::value)>{}を返す。
- Hidden friendsとして定義されるため、引数依存の名前探索 (ADL) でのみ発見される。
- オペランドのいずれかが
constant_wrapperでない場合、保持する値へアンラップして通常の演算がおこなわれる。
#include <utility>
int main()
{
// 比較結果を保持するconstant_wrapperを返す
static_assert(std::cw<5> == std::cw<5>);
}
- C++26
- Clang: 23 [mark verified]
- GCC: 16.1 [mark verified]
- Visual C++: 2026 Update 2 [mark noimpl]