Namespaces
Variants

std::meta::reflect_constant_string

ja.cppreference.net より
 
 
 
リフレクションライブラリ
 
リフレクション型とクエリ
リフレクションクエリ
リフレクションレイアウトクエリ
型のプロパティ
型プロパティクエリ
 
ヘッダ <meta>
template< ranges::input_range R >
consteval std::meta::info reflect_constant_string( R&& r );
(C++26 以上) で定義

r の各要素を対応する要素とする文字配列オブジェクトを表すリフレクションを返します。ただし、r が文字列リテラルオブジェクトでない場合、末尾にヌル文字が追加されます。

結果の文字配列オブジェクトは テンプレートパラメータオブジェクトです。これは静的記憶域期間を持ち、同じ内容の文字列は同じオブジェクトに対応します。

結果の文字配列オブジェクトは 潜在的に一意ではないオブジェクトでもあります。

形式的には、次のようにします:

  • CharT を ranges::range_value_t<R> とします。これは char、wchar_t、char8_t、char16_t、または char32_t のいずれかでなければなりません。
  • V を型 CharT の値のパックとします。その各要素は r の対応する要素ですが、r が文字列リテラルオブジェクトである場合、V には r の末尾のヌル文字は含まれません。
  • P を型 の テンプレートパラメータオブジェクトconst CharT[sizeof...(V) + 1]とします。これは {V..., CharT()} で初期化されます。

この関数は、オブジェクト P を表すリフレクションを返します。

引数

r - 文字の input_range

戻り値

上記のように文字配列オブジェクトを表すリフレクション。

ノート

std::meta::reflect_constant_string の結果は、std::meta::substitute での使用に適しています。呼び出し元がリフレクション値ではなく静的文字列へのポインタを必要とする場合は、通常 std::define_static_string の方が適しています。

例

関連項目

コンパイル時文字列を静的ストレージに昇格させ、静的文字列の最初の文字へのポインタを返します
(関数テンプレート)
コンパイル時配列を静的ストレージに昇格させ、静的配列を表すリフレクションを返します
(関数テンプレート)
値または テンプレートパラメータオブジェクト を表すリフレクションを返します。これは定数テンプレート引数として使用するのに適しています
(関数テンプレート)