std::meta::is_explicit
Определён в заголовочном файле <meta> | ||
|---|---|---|
consteval bool is_explicit( std::meta::info r ); | (начиная с C++26) |
Возвращает true, если r представляет собой явный конструктор или функцию преобразования. В противном случае возвращает 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*));
См. также
|
(C++26) | проверяет, представляет ли отражение функцию (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/is_explicit