namespace std::meta {
template <reflection_range R = std::initializer_list<info>>
consteval info substitute(info templ, R&& arguments);
}
概要
テンプレートにテンプレート引数を適用する。
戻り値
テンプレートtemplにargumentsを置換した結果の特殊化のリフレクションを返す。
例外
can_substitute(templ, arguments)がfalseの場合、std::meta::exception例外を送出する。
例
#include <meta>
#include <vector>
int main() {
constexpr auto vec_int = std::meta::substitute(^^std::vector, {^^int});
static_assert(vec_int == ^^std::vector<int>);
}
出力
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) ✅ - Visual C++: ??