namespace std::meta {
consteval info data_member_spec(info type, data_member_options options);
}
概要
データメンバの仕様を作成する。define_aggregate()で使用するデータメンバの仕様を表すリフレクションを返す。
戻り値
指定された型typeとオプションoptionsに基づくデータメンバの仕様を表すリフレクションを返す。
例外
以下のいずれかの場合、std::meta::exception例外を送出する:
typeがオブジェクト型または参照型を表さない場合options.nameに値があり、有効な識別子でない場合options.nameに値がなく、options.bit_widthにも値がない場合
例
#include <meta>
struct S;
consteval {
std::meta::define_aggregate(^^S, {
std::meta::data_member_spec(^^int, {.name = "x"}),
std::meta::data_member_spec(^^double, {.name = "y"})
});
}
int main() {
S s{1, 2.0};
static_assert(std::meta::is_data_member_spec(
std::meta::data_member_spec(^^int, {.name = "z"})));
}
出力
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) ✅ - Visual C++: ??