std::meta::has_default_argument
Объявлен в заголовочном файле <meta> | ||
|---|---|---|
consteval bool has_default_argument( std::meta::info r ); | (начиная с C++26) |
Возвращает true, если r представляет параметр функции P, имеющий аргумент по умолчанию D. В противном случае возвращает false.
Формально пусть P обозначает параметр функции, F — функцию, а D — аргумент по умолчанию.
- Если
Fявляется специализацией шаблонной функцииT, то возвращаетtrue, если существует объявлениеDдляT, достижимое из точки в контексте вычисления, иDзадаёт аргумент по умолчанию для параметраT, соответствующегоP. В противном случае возвращаетfalse. - В противном случае, если существует объявление
DдляF, достижимое из точки в контексте вычисления, иDзадаёт аргумент по умолчанию дляP, то возвращаетtrue. В противном случае возвращаетfalse.
Параметры
| r | - | значение отражения |
Возвращаемое значение
true, если r представляет параметр функции, имеющий аргумент по умолчанию; в противном случае false.
Пример
#include <meta>
void foo(int x, double y = 3.14);
constexpr auto rx{std::meta::parameters_of(^^foo)[0]}; // int x
constexpr auto ry{std::meta::parameters_of(^^foo)[1]}; // double y = 3.14
static_assert(std::meta::type_of(rx) == ^^int);
static_assert(has_default_argument(rx) == false);
static_assert(std::meta::type_of(ry) == ^^double);
static_assert(has_default_argument(ry) == true);
int main() {}
См. также
|
(C++26) | получает параметры отражённой функции (функция) |
|
(C++26) | получает переменную параметра отражённой функции в определении функции (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/has_default_argument