最終更新日時(UTC):
が更新

履歴 編集

function
<meta>

std::meta::is_explicit_object_parameter(C++26)

namespace std::meta {
  consteval bool is_explicit_object_parameter(info r);
}

概要

関数パラメータが明示的オブジェクトパラメータ(this引数)であるかを判定する。

戻り値

rが関数パラメータを表し、かつ明示的オブジェクトパラメータ(this引数)である場合にtrueを返す。そうでなければfalseを返す。

#include <meta>

struct S {
  void f(this S& self) {}  // 明示的オブジェクトパラメータ
  void g(int x) {}         // 通常のパラメータ
};

consteval bool check() {
  auto f_params = std::meta::parameters_of(^^S::f);
  auto g_params = std::meta::parameters_of(^^S::g);
  return std::meta::is_explicit_object_parameter(f_params[0])
      && !std::meta::is_explicit_object_parameter(g_params[0]);
}

int main() {
  static_assert(check());
}

出力

バージョン

言語

  • C++26

処理系

参照