C++:使用 fusion::at 时出现BOOST_FUSION_ADAPT_STRUCT错误

C++: BOOST_FUSION_ADAPT_STRUCT Error When Using fusion::at

本文关键字:FUSION ADAPT STRUCT 错误 BOOST fusion 使用 at C++      更新时间:2023-10-16
在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++。
我做错了什么?
提前谢谢。

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

因为 N 必须是 MPL 积分常数

Boost::

fusion::at