最終更新日時: 2026年06月21日 13時52分24秒 (JST)
Akira Takahashi が更新

履歴 編集

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<5>;
      static_assert(x == 5);
      static_assert(std::is_same_v<decltype(x), std::constant_wrapper<5>>);
    }

### 出力

## バージョン

### 言語

- C++26

### 処理系

- Clang: 23 ✅
- GCC: 16.1 ✅
- Visual C++: 2026 Update 2 ❌

## 関連項目

- `std::constant_wrapper`

## 参照

- P2781R9 `std::constant_wrapper`
- P3978R3 `constant_wrapper` should unwrap on call and subscript