std::is_void
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <type_traits>
|
||
template< class T > struct is_void; |
(начиная с C++11) | |
std::is_void является UnaryTypeTrait.
Проверяет, является ли T пустым типом. Предоставляет константу элемент value, которая равна true, если T имеет тип void, const void, volatile void или const volatile void. Иначе value равно false.
Поведение программы, добавляющей специализации для std::is_void или std::is_void_v (начиная с C++17) не определено.
Параметры шаблона
| T | — | тип для проверки |
Шаблон вспомогательной переменной
<tbody> </tbody> template< class T > inline constexpr bool is_void_v = is_void<T>::value; |
(начиная с C++17) | |
Унаследован от std::integral_constant
Константы элементы
value [static] |
true, если T это тип void (возможно, cv-квалифицированный), false иначе (public static константа-элемент) |
Функции-элементы
operator bool |
преобразует объект в bool, возвращает value (public функция-элемент) |
operator() (C++14) |
возвращает value (public функция-элемент) |
Типы элементы
| Тип | Определение |
value_type
|
bool
|
type
|
std::integral_constant<bool, value>
|
Возможная реализация
template< class T >
struct is_void : std::is_same<void, typename std::remove_cv<T>::type> {};
|
Пример
Запустить этот код
#include <type_traits>
void foo();
static_assert
(
std::is_void_v<void> == true and
std::is_void_v<const void> == true and
std::is_void_v<volatile void> == true and
std::is_void_v<void*> == false and
std::is_void_v<int> == false and
std::is_void_v<decltype(foo)> == false and
std::is_void_v<std::is_void<void>> == false
);
int main() {}
Смотрите также
(C++11) |
проверяет, является ли тип типом массива (шаблон класса) |
(C++11) |
проверяет, является ли тип типом указателя (шаблон класса) |
(C++11) |
проверяет, является ли тип типом перечисления (шаблон класса) |
(C++11) |
проверяет, является ли тип типом объединения (шаблон класса) |
(C++11) |
проверяет, является ли тип типом класса не объединения (шаблон класса) |
(C++11) |
проверяет, является ли тип типом функции (шаблон класса) |
(C++11) |
проверяет, является ли тип объектным типом (шаблон класса) |