std::is_void — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
|
|
(начиная с 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) не определено.
Параметры шаблона
Шаблон вспомогательной переменной
<tbody> </tbody>
|
|
(начиная с C++17) | |
Унаследован от std::integral_constant
Константы элементы
true, если T это тип void (возможно, cv-квалифицированный), false иначе (public static константа-элемент) |
Функции-элементы
преобразует объект в bool, возвращает value (public функция-элемент) | |
возвращает 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) |
проверяет, является ли тип объектным типом (шаблон класса) [править] |