xieite::type_list<Ts...>::xform_flat<>

Defined in fragment xieite:type_list
(header-only: <xieite/meta/type_list.hpp>)


Instantiates another template with the elements of a xieite::type_list as the arguments.


Declaration

template<std::size_t arity, auto fn>
requires(!(sizeof...(Ts) % arity))
using xform_flat = /* xieite::type_list<???> */;


Example

import std;
import xieite;

int main() {
	using Foo = xieite::type_list<int, char, float, double, void, bool>;

	// Swap every 2 elements
	using Bar = Foo::xform_flat<2, []<typename T, typename U, typename...> {
		return std::type_identity<std::pair<U, T>>();
	}>;

	xieite::dump(xieite::name<Bar>());
}
Possible output:
xieite::type_list<char, int, double, float, bool, void>