- meta[meta header]
- std::meta[meta namespace]
- function[meta id-type]
- cpp26[meta cpp]
namespace std::meta {
consteval bool has_identifier(info r);
}- info[link info.md]
リフレクションが識別子を持つかどうかを判定する。
rが識別子を持つ場合はtrue、そうでなければfalseを返す。名前のない関数パラメータや、異なる宣言間でパラメータ名が一致しない場合はfalseとなる。
#include <meta>
void func(int x, int);
int main() {
static_assert(std::meta::has_identifier(
std::meta::parameters_of(^^func)[0])); // "x"という名前がある
static_assert(!std::meta::has_identifier(
std::meta::parameters_of(^^func)[1])); // 名前がない
}- std::meta::parameters_of[link parameters_of.md]
- C++26
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) [mark verified] - Visual C++: ??