Template  | Condition  | Comments  | 
T is an lvalue reference or an rvalue reference  | ||
T is an arithmetic type ([basic.fundamental])  | ||
T is a fundamental type ([basic.fundamental])  | ||
T is an object type ([basic.types])  | ||
T is a scalar type ([basic.types])  | ||
T is a compound type ([basic.compound])  | ||
T is a pointer to non-static data member
 or non-static member function  |