6#ifndef OPENCBDC_TX_SRC_COMMON_VARIANT_OVERLOADED_H_
7#define OPENCBDC_TX_SRC_COMMON_VARIANT_OVERLOADED_H_
33 using Ts::operator()...;
47 template<
typename... Ts>
48 [[nodiscard]]
auto expand_type(
size_t i) -> std::variant<Ts...> {
49 static_assert((std::is_default_constructible_v<Ts> && ...));
50 using T =
typename std::variant<Ts...>;
51 assert(i < std::variant_size_v<T>);
52 static constexpr auto t = std::array{+[]() {
overloaded(Ts...) -> overloaded< Ts... >
auto expand_type(size_t i) -> std::variant< Ts... >
Default-constructs a std::variant from a template parameter pack.
Variant handler template.