namespace std::meta {
template <reflection_range R = std::initializer_list<info>>
consteval info invoke_result(info type, R&& type_args);
}
概要
呼び出し可能な型の呼び出し結果型を求める。std::invoke_resultに対応する。
戻り値
typeが呼び出し可能型を表し、type_argsが引数型のリフレクションを表す場合、std::invoke_result相当の結果型のリフレクションを返す。
例外
typeまたはtype_argsの各要素が型を表さない場合、std::meta::exception例外を送出する。
例
#include <meta>
#include <functional>
int f(double);
int main() {
static_assert(std::meta::invoke_result(^^decltype(f), {^^double}) == ^^int);
}
出力
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) ✅ - Visual C++: ??