Skip to content

Latest commit

 

History

History
59 lines (44 loc) · 1.47 KB

File metadata and controls

59 lines (44 loc) · 1.47 KB

推論補助

  • memory[meta header]
  • std[meta namespace]
  • indirect[meta class]
  • function[meta id-type]
  • cpp26[meta cpp]
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)
  • allocator_arg_t[link /reference/memory/allocator_arg_t.md]

概要

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>>);
}
  • std::indirect[link ../indirect.md]

出力

バージョン

言語

  • C++26

処理系

  • Clang: 22 [mark noimpl]
  • GCC: 16.1 [mark verified]
  • Visual C++: 2026 Update 2 [mark noimpl]

関連項目

参照