Skip to content

Latest commit

 

History

History
75 lines (57 loc) · 2.28 KB

File metadata and controls

75 lines (57 loc) · 2.28 KB

identifier_of

  • meta[meta header]
  • std::meta[meta namespace]
  • function[meta id-type]
  • cpp26[meta cpp]
  • u8identifier_of[meta alias]
namespace std::meta {
  consteval string_view identifier_of(info r);
  consteval u8string_view u8identifier_of(info r);
}
  • info[link info.md]

概要

リフレクションの識別子を文字列で取得する。

戻り値

rの識別子を返す。has_identifier(r)trueであり、識別子が返す文字エンコーディングで表現可能であることが事前条件となる。

例外

has_identifier(r)falseの場合、または返される識別子が文字エンコーディングで表現できない場合、std::meta::exception例外を送出する。

備考

std::meta名前空間の関数のうち、戻り値の型がstring_viewまたはu8string_viewであるものは、NULL終端された静的記憶域上の文字列を返す、というルールがある。本関数もそれに該当する。

#include <meta>
#include <print>

struct Point {
  int x;
  int y;
};

int main() {
  template for (constexpr auto m :
      std::define_static_array(std::meta::nonstatic_data_members_of(^^Point,
          std::meta::access_context::unchecked()))) {
    std::println("{}", std::meta::identifier_of(m));
  }
}
  • std::meta::nonstatic_data_members_of[link nonstatic_data_members_of.md]
  • std::meta::access_context[link access_context.md]
  • unchecked[link access_context/unchecked.md]

出力

x
y

バージョン

言語

  • C++26

処理系

参照