File reduce.hpp

Parent directory (include)

Compile-time folds over HasStaticSize types.

Definition (include/reduce.hpp)

Detailed Description

Folds a pack of types that expose a static size (via the HasStaticSize predicate) using a user-supplied binary meta-op on std::size_t. The public API is the {reduce_sizes_t, reduce_sizes_v} pair, plus Sum{,_v}. Complexity is linear in the number of types.

Example

structA{staticconstexprstd::size_tsize=3;}; structB{staticconstexprstd::size_tsize=5;}; static_assert(ctql::Sum_v<A,B>==8);

Works at compile time only; results are std::integral_constant<size_t, ...> or a value thereof.

Includes

Namespaces

Typedefs

Variables