Skip to content

Latest commit

 

History

History
72 lines (52 loc) · 1.75 KB

File metadata and controls

72 lines (52 loc) · 1.75 KB

data_member_spec

  • meta[meta header]
  • std::meta[meta namespace]
  • function[meta id-type]
  • cpp26[meta cpp]
namespace std::meta {
  consteval info data_member_spec(info type, data_member_options options);
}
  • info[link info.md]
  • data_member_options[link data_member_options.md]

概要

データメンバの仕様を作成する。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

処理系

関連項目

参照