26 lines
		
	
	
		
			712 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			712 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
#include <tuple>
 | 
						|
#include <variant>
 | 
						|
namespace meta
 | 
						|
{
 | 
						|
	template<typename Variant, template<class T> typename Template>
 | 
						|
	struct variant_wrap;
 | 
						|
 | 
						|
	template<typename Variant, template<class T> typename Template>
 | 
						|
	using variant_wrap_t = typename variant_wrap<Variant, Template>::type;
 | 
						|
 | 
						|
	template<typename T>
 | 
						|
	struct tuple_to_variant;
 | 
						|
 | 
						|
	template<typename T>
 | 
						|
	using tuple_to_variant_t = typename tuple_to_variant<T>::type;
 | 
						|
 | 
						|
	template<typename T>
 | 
						|
	constexpr auto variant_construct(size_t) noexcept;
 | 
						|
 | 
						|
    template<typename FindMe, typename Variant>
 | 
						|
    struct index_in_variant;
 | 
						|
 | 
						|
    template<typename FindMe, typename Variant>
 | 
						|
    constexpr auto index_in_variant_v = index_in_variant<FindMe, Variant>::value;
 | 
						|
} |