xieite::value {}

Defined in header <xieite/meta/value.hpp>

A NTTP wrapper.


Definition

template<decltype(auto) x>
struct value : /* struct { static constexpr decltype(auto) value = x; } */ {};


Example

template<std::size_t idx, typename... Ts>
using at = decltype(xieite::unroll<Ts...>([]<std::size_t... i> static {
	return xieite::visitor(
		[](xieite::value<i>) static {
			return std::type_identity<Ts>();
		}...
	)(xieite::value<idx>());
}))::type;

static_assert(std::same_as<at<1, int, char, void>, char>);

int main() {}
[View in Compiler Explorer]