template<class T, class Context>
decltype(auto) allocator-aware-forward(T&& obj, Context&& context);
概要
allocator-aware-forwardは、Senderアルゴリズム動作仕様定義で用いられる説明専用の関数テンプレートである。
アロケータの利用可否に応じて、objからT型の新規オブジェクトを作成するか、objを転送する。
contextに関連付けられた環境がアロケータを提供する(つまり、式get_allocator(get_env(context))が有効である)とき、同式の結果をalloc、型Pをremove_cvref_t<T>とする。
戻り値
allocが定義されなければ、std::forward<T>(obj)を返す。-
そうではなく、
Pがproduct-typeの特殊化のときは、objの要素をeとしたとき各要素が次の通り初期化されたP型のオブジェクトを返す。make_obj_using_allocator<decltype(e)>(std::forward_like<T>(e), alloc) -
そうでなければ、
make_obj_using_allocator<P>(std::forward<T>(e), alloc)を返す。
バージョン
言語
- C++26