std::is_void - cppreference.com (original) (raw)

| | | | | ------------------------------------- | | ------------- | | template< class T > struct is_void; | | (since C++11) |

std::is_void is a UnaryTypeTrait.

Checks whether T is a void type. Provides the member constant value that is equal to true, if T is the type void, const void, volatile void, or const volatile void. Otherwise, value is equal to false.

If the program adds specializations for std::is_void or std::is_void_v, the behavior is undefined.

Contents

[edit] Template parameters

[edit] Helper variable template

| template< class T > constexpr bool is_void_v = is_void<T>::value; | | (since C++17) | | ----------------------------------------------------------------------- | | ------------- |

Inherited from std::integral_constant

Member constants

| | true if T is the type void (possibly cv-qualified), false otherwise (public static member constant) | | ------------------------------------------------------------------------------------------------------ |

Member functions

| | converts the object to bool, returns value (public member function) | | ---------------------------------------------------------------------- | | | returns value (public member function) |

Member types

[edit] Possible implementation

[edit] Example

#include   void foo();   static_assert ( std::is_void_v == true and std::is_void_v == true and std::is_void_v == true and std::is_void_v == true and std::is_void_v<std::void_t<>> == true and std::is_void_v<void*> == false and std::is_void_v == false and std::is_void_v<decltype(foo)> == false and std::is_void_v<std::is_void> == false );   int main() {}

[edit] See also

is_array(C++11) checks if a type is an array type (class template) [edit]
is_pointer(C++11) checks if a type is a pointer type (class template) [edit]
is_enum(C++11) checks if a type is an enumeration type (class template) [edit]
is_union(C++11) checks if a type is a union type (class template) [edit]
is_class(C++11) checks if a type is a non-union class type (class template) [edit]
is_function(C++11) checks if a type is a function type (class template) [edit]
is_object(C++11) checks if a type is an object type (class template) [edit]