【发布时间】:2018-05-01 00:05:03
【问题描述】:
有没有办法为 Hana 定义(调整)具有模板参数的结构?
canonical example 是一个非模板类,
#include <boost/hana/define_struct.hpp>
#include <string>
namespace hana = boost::hana;
struct Person {
BOOST_HANA_DEFINE_STRUCT(Person,
(std::string, name),
(int, age)
);
};
我们我尝试添加模板参数出现编译错误:
template<class S = std::string, class I = int>
struct Person {
BOOST_HANA_DEFINE_STRUCT(Person<S, I>,
(S, name),
(I, age)
);
};
我虽然因为使用逗号而失败,所以我尝试用decltype(Person<S, I>) 代替Person<S,I>。
在 Boost.Fusion 中我们有 BOOST_FUSION_DEFINE_TPL_STRUCT,但我在 Hana 中找不到等价物。
如何使用模板参数定义 Hana Struct?
【问题讨论】:
标签: c++ templates boost-fusion boost-hana