Namespaces
Variants

std::meta::is_explicit

ja.cppreference.net より
< cpp | meta
 
 
 
リフレクションライブラリ
 
リフレクション型とクエリ
リフレクションクエリ
リフレクションレイアウトクエリ
型プロパティ
型プロパティクエリ
 
ヘッダ <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)
リフレクションが関数を表すかどうかを確認する
(関数)