【发布时间】:2020-05-19 06:46:12
【问题描述】:
我有以下代码,我想将boost::hana::tuple 转换为std::variant
namespace hana = boost::hana;
template <typename Tuple>
struct to_variant;
template <typename... Ts>
struct to_variant<std::tuple<Ts...>>
{
using type = std::variant<Ts...>;
};
auto my_tuple = hana::make_tuple(hana::type_c<int>, hana::type_c<char>, hana::type_c<float>);
using my_variant = typename to_variant<my_tuple>::type;
但我总是收到错误消息
error: type/value mismatch at argument 1 in template parameter list for 'template<class Tuple> struct to_variant'
using my_variant = typename to_variant<my_tuple>::type;
我尝试将std::tuple 替换为hana::tuple,结果相同。
【问题讨论】:
标签: c++ c++17 template-meta-programming boost-hana