最終更新日時: 2026年07月23日 11時34分53秒 (JST)
Raclamusi が更新

履歴 編集

function
<memory>

# std::indirect::推論補助(C++26)

    template <class Value>
    indirect(Value) -> indirect<Value>; // (1)

    template <class Allocator, class Value>
    indirect(allocator_arg_t, Allocator, Value)
      -> indirect<Value,
           typename allocator_traits<Allocator>::template rebind_alloc<Value>>; // (2)

## 概要

`std::indirect`クラステンプレートの型推論を補助する。

- (1) : 単一の値から`indirect`を構築する場合、その値の型を`T`として推論する。
- (2) : アロケータと値から構築する場合、値の型を`T`とし、アロケータを`Value`向けに`rebind`した型を`Allocator`として推論する。

## 例

    #include <memory>
    #include <type_traits>

    int main()
    {
      std::indirect a{42};
      static_assert(std::is_same_v<decltype(a), std::indirect<int>>);
    }

### 出力

## バージョン

### 言語

- C++26

### 処理系

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

## 関連項目

- `std::indirect`

## 参照

- P3019R14 `indirect` and `polymorphic`: Vocabulary Types for Composite Class Design