std::meta::is_explicit

来自cppreference.com
< cpp | meta
在标头 <meta> 定义
consteval bool is_explicit( std::meta::info r );
(C++26 起)

如果 r 表示显式的构造函数或转换函数,则返回 true,否则返回 false

参数

r - 一个反射值

返回值

如果 r 表示声明为显式的成员函数,则为 true,否则为 false

注解

如果 r 不表示函数,则结果为 false。特别地,如果 r 表示函数模板,则结果为 false

示例

#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*));

参阅

检查反射是否表示函数
(函数) [编辑]