我正在尝试使用 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);
}
请注意,operator()
ofstruct A
修改x
为struct A
。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]
有解决方案吗?