ocean.meta.types.ReduceType

Generic utility allowing to recursively visit an arbitrary type and reduce its definition to some compile-time value. It is intended to be used as an implementation cornerstone for complex type traits to avoid having to rewrite the recursive type reflection boilerplate wherever it's needed.

NB: because this module is often used as purely compile-time dependency it used built-in asserts instead of ocean.core.Test to reduce amount of cyclic imports. ocean.meta modules in general are not supposed to import anything outside of ocean.meta.

Members

Templates

ReduceType
template ReduceType(T, Reducer)

Reduces definition of a type to single value using provided Reducer.

assertValidReducer
template assertValidReducer(Reducer)

Verifies that Reducer is an aggregate type that conforms type reducer requirements and issues static assertion otherwise.

Meta

License

Boost Software License Version 1.0. See LICENSE_BOOST.txt for details. Alternatively, this file may be distributed under the terms of the Tango 3-Clause BSD License (see LICENSE_BSD.txt for details).