xieite::value_id<>

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

A NTTP wrapper.


Definition

template<decltype(auto) x>
struct value_id {
	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_id<i>) static {
			return std::type_identity<Ts>();
		}...
	)(xieite::value_id<idx>());
}))::type;

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

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