2

我从 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)确实包含此宏定义。

编辑:宏是可怕的。:( 看看第一个答案。

4

1 回答 1

3

它应该是:

struct Foo
{
    BOOST_HANA_DEFINE_STRUCT(Foo,
     (int, var1_),
     (double, var2) // no comma
     );
};
于 2016-06-04T15:26:55.450 回答