A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../error/../language/../types/is_object.html below:

std::is_object - cppreference.com

template< class T >
struct is_object;

(since C++11)

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.

[edit] Template parameters [edit] Helper variable template

template< class T >
constexpr bool is_object_v = is_object<T>::value;

(since C++17) Inherited from std::integral_constant Member constants true if T is an object type, 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 <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 object\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
[edit] See also checks if a type is a scalar type
(class template) [edit] checks if a type is an array type
(class template) [edit] checks if a type is a union type
(class template) [edit] checks if a type is a non-union class type
(class template) [edit]

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4