#include <array>
#include <tuple>
#include <variant>
#include <iostream>
#include <functional>
using std::tuple;
using std::array;
using std::variant;
using std::cout;
#include "MyData.h"
template<size_t... Is, typename... Ts>
array<variant<std::reference_wrapper<Ts>...>, sizeof...(Ts)> convert_impl(tuple<Ts...>& in, std::index_sequence<Is...>)
{
return {{variant<std::reference_wrapper<Ts>...>(std::in_place_index_t<Is>{}, std::ref(std::get<Is>(in)))...}};
}
template<typename... Ts>
array<variant<std::reference_wrapper<Ts>...>, sizeof...(Ts)> convert(tuple<Ts...>& in)
{
return convert_impl(in, std::make_index_sequence<std::tuple_size_v<tuple<Ts...>>>{});
}