- meta[meta header]
- std::meta[meta namespace]
- function template[meta id-type]
- cpp26[meta cpp]
namespace std::meta {
template <reflection_range R = std::initializer_list<info>>
consteval info invoke_result(info type, R&& type_args);
}- info[link info.md]
- reflection_range[link reflection_range.md]
呼び出し可能な型の呼び出し結果型を求める。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オプション指定) [mark verified] - Visual C++: ??