【发布时间】:2013-02-26 01:01:44
【问题描述】:
我正在尝试使用 boost::fusion::vector。但是,我遇到了一个非常简单的问题。
#include <iostream>
#include <string>
#include <boost/fusion/container/vector.hpp>
#include <boost/fusion/algorithm.hpp>
using namespace std;
struct A{
template <class T>
void operator()(const T& t) {
x++;
cout << t << endl;
}
int x = 0;
};
int main(){
A a;
boost::fusion::vector<int, int, int> tuple{3,4,5};
boost::fusion::for_each(tuple, a);
}
注意struct A 的operator() 修改了struct A 中的x。
gcc 4.7.2 警告 ...\include\boost\fusion\algorithm\iteration\detail\for_each.hpp:77: 错误:将 'const A' 作为 'void A::operator()( const T&) [with T = int]' 丢弃限定符 [-fpermissive]
有解决办法吗?
【问题讨论】:
标签: c++ boost boost-fusion