| 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.general]) | |||
| T is a scalar type ([basic.types.general]) | |||
| T is a compound type ([basic.compound]) | |||
| T is a pointer-to-member type ([basic.compound]) |