std::meta::is_explicit
ja.cppreference.net より
| ヘッダ <meta>
|
||
consteval bool is_explicit( std::meta::info r );
|
で定義 (C++26 以上) | |
true を返す。もし r が explicit コンストラクタまたは変換関数を表す場合。それ以外の場合は false を返す。
引数
| r | - | リフレクション値 |
戻り値
trueもし r が explicit と宣言されたメンバ関数を表す場合は false。それ以外の場合は
。
ノートrもし false が関数を表さない場合、結果は false となる。特に、r が関数テンプレートを表す場合、結果は
となる。
例
#include <meta>
struct A {
explicit operator bool() const;
template<class T>
explicit(^^T == ^^void) operator T*() const;
};
static_assert(std::meta::is_explicit(^^A::operator bool));
static_assert(std::meta::is_explicit(^^A::operator void*));
static_assert(!std::meta::is_explicit(^^A::operator int*));
このコードを実行
is_function |
(C++26) リフレクションが関数を表すかどうかを確認する |