- meta[meta header]
- std::meta[meta namespace]
- function[meta id-type]
- cpp26[meta cpp]
namespace std::meta {
consteval bool has_default_argument(info r);
}- info[link info.md]
関数パラメータがデフォルト引数を持つかを判定する。
rが関数パラメータを表し、そのパラメータが到達可能な宣言のいずれかでデフォルト引数を持つ場合にtrueを返す。そうでなければfalseを返す。
#include <meta>
void func(int x, int y = 10);
int main() {
static_assert(!std::meta::has_default_argument(
std::meta::parameters_of(^^func)[0])); // x
static_assert(std::meta::has_default_argument(
std::meta::parameters_of(^^func)[1])); // y = 10
}- std::meta::parameters_of[link parameters_of.md]
- C++26
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) [mark verified] - Visual C++: ??