if-then-else

suggest change

The type std::conditional in the standard library header <type_traits> can select one type or the other, based on a compile-time boolean value:

template<typename T>
struct ValueOrPointer
{
    typename std::conditional<(sizeof(T) > sizeof(void*)), T*, T>::type vop;
};

This struct contains a pointer to T if T is larger than the size of a pointer, or T itself if it is smaller or equal to a pointer’s size. Therefore sizeof(ValueOrPointer) will always be <= sizeof(void*).

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:



Table Of Contents