Nested Initializer Lists

#include <m3ta/nestedinitializerlists>

A given type wrapped within a number of nested std::initializer_list.

In other words, m3ta::NestedInitializerListsT<int, 2> is the same as std::initializer_list<std::initializer_list<int>>.

Traits

m3ta::NestedInitializerLists
template<typename T, std::size_t T_levels>
struct NestedInitializerLists
Template Parameters:
 
  • T – Inner type.
  • T_levels – Number of std::initializer_list wrapping the type T.

Member Types

type

The type of the outer std::initializer_list. Returns T if T_levels is 0.

Aliases

m3ta::NestedInitializerListsT
template<typename T, std::size_t T_levels>
using NestedInitializerListsT =
    typename NestedInitializerLists<T, T_levels>::type;

Usage Examples

using Type1 = m3ta::NestedInitializerListsT<int, 0>; // int
using Type2 = m3ta::NestedInitializerListsT<int, 1>; // std::initializer_list<int>
using Type3 = m3ta::NestedInitializerListsT<int, 2>; // std::initializer_list<std::initializer_list<int>>