From f81cd736e00c28cf24412a4099bae08ff2e6c493 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Mon, 16 Feb 2015 17:35:38 +0100 Subject: Unified `Iota` and `MakeList` using nested structure generator * `detail::generate_nested_structure` offers a higher order nested structure constructor for procedural list generation * renamed `Fold` implementation details --- .../generator/detail/generate_nested_structure.h | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/list/generator/detail/generate_nested_structure.h (limited to 'src/list/generator/detail/generate_nested_structure.h') diff --git a/src/list/generator/detail/generate_nested_structure.h b/src/list/generator/detail/generate_nested_structure.h new file mode 100644 index 0000000..84db78d --- /dev/null +++ b/src/list/generator/detail/generate_nested_structure.h @@ -0,0 +1,39 @@ +#ifndef TYPEASVALUE_SRC_LIST_GENERATOR_DETAIL_GENERATE_NESTED_STRUCTURE_H_ +#define TYPEASVALUE_SRC_LIST_GENERATOR_DETAIL_GENERATE_NESTED_STRUCTURE_H_ + +namespace tav { + +namespace detail { + +template < + template class Structure, + template class Generator, + typename Initial, + typename Count +> +struct generate_nested_structure { + typedef Structure< + Initial, + Eval, + Substract> + >> + > type; +}; + +template < + template class Structure, + template class Generator, + typename Initial +> +struct generate_nested_structure> { + typedef void type; +}; + +} + +} + +#endif // TYPEASVALUE_SRC_LIST_GENERATOR_DETAIL_GENERATE_NESTED_STRUCTURE_H_ -- cgit v1.2.3