在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++。
我做错了什么?
提前谢谢。
发布于 2012-08-20 02:34:22
boost::fusion::at<boost::mpl::int_<0>>(s) = 1;因为N必须是MPL整数常量
Boost::fusion::at
https://stackoverflow.com/questions/12028667
复制相似问题