namespace std::meta {
template <class T>
consteval info reflect_constant(T value);
}
概要
値からリフレクションを生成する。
適格要件
is_copy_constructible_v<T>がtrueであり、かつTがCV修飾されていない構造的型(structural type)であって参照型でないこと。
戻り値
valueの値を表すリフレクションを返す。
例外
valueの値を型Tのテンプレートパラメータに対するテンプレート実引数として使用できない場合、std::meta::exception例外を送出する。
例
#include <meta>
enum class Color { red = 1, green = 2, blue = 3 };
int main() {
constexpr auto r = std::meta::reflect_constant(42);
static_assert(std::meta::extract<int>(r) == 42);
constexpr auto c = std::meta::reflect_constant(Color::green);
static_assert(std::meta::extract<Color>(c) == Color::green);
}
出力
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) ✅ - Visual C++: ??