FreeBSD Manual Pages
std::is_object(3) C++ Standard Libary std::is_object(3) NAME std::is_object - std::is_object Synopsis Defined in header <type_traits> template< class T > (since C++11) struct is_object; std::is_object is a UnaryTypeTrait. If T is an object type (that is any possibly cv-qualified type other than function, reference, or void types), provides the member constant value equal true. For any other type, value is false. If the program adds specializations for std::is_object or std::is_object_v, the behavior is undefined. Template parameters T - a type to check Helper variable template template< class T > (since C++17) inline constexpr bool is_object_v = is_object<T>::value; Inherited from std::integral_constant Member constants value true if T is an object type, false otherwise [static] (public static member constant) Member functions operator bool converts the object to bool, returns value (public member function) operator() returns value (C++14) (public member function) Member types Type Definition value_type bool type std::integral_constant<bool, value> Possible implementation template<class T> struct is_object : std::integral_constant<bool, std::is_scalar<T>::value || std::is_array<T>::value || std::is_union<T>::value || std::is_class<T>::value> {}; Example // Run this code #include <iomanip> #include <iostream> #include <type_traits> #define IS_OBJECT(...) \ std::cout << std::boolalpha << std::left << std::setw(9) << #__VA_ARGS__ \ << (std::is_object_v<__VA_ARGS__> ? " is object\n" \ : " is not an ob- ject\n") int main() { class cls {}; IS_OBJECT(void); IS_OBJECT(int); IS_OBJECT(int&); IS_OBJECT(int*); IS_OBJECT(int*&); IS_OBJECT(cls); IS_OBJECT(cls&); IS_OBJECT(cls*); IS_OBJECT(int()); IS_OBJECT(int(*)()); IS_OBJECT(int(&)()); } Output: void is not an object int is object int& is not an object int* is object int*& is not an object cls is object cls& is not an object cls* is object int() is not an object int(*)() is object int(&)() is not an object See also is_scalar checks if a type is a scalar type (C++11) (class template) is_array checks if a type is an array type (C++11) (class template) is_union checks if a type is a union type (C++11) (class template) is_class checks if a type is a non-union class type (C++11) (class template) http://cppreference.com 2024.06.10 std::is_object(3)
NAME | Synopsis | Template parameters | Member constants | Member functions | Member types | Possible implementation | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::is_object&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
