适配空结构体用于Boost Fusion

3

我有一个空结构体:

struct MyStruct {};

我希望将这个内容适应于Boost Fusion。通常我会使用BOOST_FUSION_ADAPT_STRUCT,但这个宏要求两个参数来命名结构体并列出其字段。有没有办法告诉宏字段不存在呢?

动机:我正在使用Boost Spirit定义一个解析器。该结构体用于传递给boost::apply_visitor()boost::variant。其中的一些项目得到了boost::fusion::for_each()的处理。

2个回答

4

我尝试将/**/作为第二个参数传递,它在我的电脑上编译通过了(使用g++-4.6.2)。

    BOOST_FUSION_ADAPT_STRUCT(MyStruct, /**/);

Visual C++ v140拒绝吃它。 - Lofty Lion
@LoftyLion,不幸的是我没有MSVC来测试这个,你可以尝试提一个新问题,或许会有更好的运气。 - SirGuy

0

尝试传递BOOST_PP_EMPTY。不能保证它会起作用,但考虑到实现方式,似乎很有可能。


我遇到了一个错误:“'BOOST_PP_IIF_0'未命名类型”。无论如何,还是感谢您的建议。 - chrisaycock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接