Я пытаюсь использовать for_each из библиотеки ускорения C++. Это код, который у меня есть.Как использовать for_each из библиотеки ускорения C++?
#include <iostream>
#include <vector>
#include <boost/fusion/algorithm/iteration/for_each.hpp>
#include <boost/fusion/include/for_each.hpp>
using namespace std;
int main() {
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
boost::for_each(
vec,
[](int val){
cout << val << "\n";
}
);
return 0;
}
Это, как я скомпилировать мой код:
g++ -std=c++0x -I /opt/software/boost/1.50_ubuntu12.4lts_gcc4.7.2/include -c try_boost.cpp
g++ -o try_boost -L/opt/software/boost/1.50_ubuntu12.4lts_gcc4.7.2/lib try_boost.o -lboost
В результате я получаю:
error: ‘for_each’ is not a member of ‘boost’
Кто-нибудь знает, почему он не работает?
Попробуйте 'boost :: fusion :: for_each'. Я не использую его, поэтому не знаю точно. – chris
@chris: Это тоже не сработает. – Nawaz
Этот 'for_each', который вы используете, не работает с' std :: vector'. Это работает с tuple-like boost :: vector из библиотеки Fusion. – Nawaz