最終更新日時:
が更新

履歴 編集

function template
<utility>

std::constant_wrapper::operator~(C++26)

template <constexpr-param T>
friend constexpr auto operator~(T x) noexcept;

概要

constant_wrapperが保持する値のビットを反転する。

戻り値

constant_wrapper<(~T::value)>{}を返す。

備考

  • Hidden friendsとして定義されるため、引数依存の名前探索 (ADL) でのみ発見される。
  • オペランドのいずれかがconstant_wrapperでない場合、保持する値へアンラップして通常の演算がおこなわれる。

#include <utility>
#include <type_traits>

int main()
{
  // オペランドがすべてconstant_wrapperなので、結果もconstant_wrapperになる
  auto x = ~std::cw<0>;
  static_assert(x == -1);
  static_assert(std::is_same_v<decltype(x), std::constant_wrapper<-1>>);
}

出力


バージョン

言語

  • C++26

処理系

関連項目

参照