1

在 Boost.Fusion 文档中,它说 BOOST_FUSION_ADAPT_STRUCT 使结构成为完全兼容的 Boost.Fusion 随机访问序列。
我尝试了以下方法:

#include <iostream>
#include <boost/fusion/include/adapt_struct.hpp>
#include <boost/fusion/include/at.hpp>

struct Str {
    int i;
    float j;
};

BOOST_FUSION_ADAPT_STRUCT(
    Str,
    (int, i)
    (float, j)
)

int main() {
    Str s;
    boost::fusion::at<0>(s) = 1;
}

我从编译器收到一个错误,说“没有匹配的函数调用 at(Str&)”。
我使用的编译器是 g++。
我究竟做错了什么?
提前致谢。

4

1 回答 1

4
boost::fusion::at<boost::mpl::int_<0>>(s) = 1;

因为 N 必须是 MPL 积分常数

提升::融合::at

于 2012-08-19T18:34:22.187 回答