cpp/utility/tuple size

Provides access to the number of elements in a type as a compile-time constant expression.

@1@ The primary template is not defined. An explicit (full) or partial specialization is required to make a type tuple-like.

@2-4@ Specializations for a cv-qualified types reuse the from the corresponding cv-unqualified versions by default.

Specializations
The standard library provides following specializations for standard library types:

All specializations of satisfy  with base characteristic  for some.

Users may specialize for program-defined types to make them tuple-like. Program-defined specializations must meet the requirements above.

Usually only specialization for cv-unqualified types are needed to be customized.