使用boost hana define struct编译错误

时间:2016-06-04 14:53:48

标签: c++ c++14 boost-hana

我开始使用boost hana,我在编写基本程序时遇到了这个编译问题:

#include <boost/hana/define_struct.hpp>

namespace hana = boost::hana;
struct Foo
{
    BOOST_HANA_DEFINE_STRUCT(Foo,
     (int, var1_),
     (double, var2),
     );
};

我正在使用最新的gcc编译器(6.1),我得到的编译错误是

boost/hana/detail/struct_macros.hpp:2462:103: error:
‘BOOST_HANA_PP_DROP_BACK’ does not name a type

这很奇怪,因为当我查看标题时,boost/hana/detail/preprocessor.hpp(上面的struct_macros.hpp包含的文件)确实包含了这个宏定义。

编辑:宏太可怕了。 :(看看第一个答案。

1 个答案:

答案 0 :(得分:3)

应该是:

struct Foo
{
    BOOST_HANA_DEFINE_STRUCT(Foo,
     (int, var1_),
     (double, var2) // no comma
     );
};