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;
|
|
} |