第11章 函数回调
#include <iostream> #include <boost/assign.hpp> #include <boost/ref.hpp> #include <boost/typeof/typeof.hpp> struct Ope { void operator()(int& x){x = x*x;} }; struct Print { void operator()(int x){std::cout<<x<<"\t";} }; int main() { std::vector<int> vect = (boost::assign::list_of(1),2,3,4,5); std::for_each(vect.begin(),vect.end(),Ope()); std::for_each(vect.begin(),vect.end(),Print()); std::cout<<std::endl; //1,4,9,16,25 int x(10),y(12); boost::reference_wrapper<int> rw(x); std::cout<<rw.get()<<std::endl; //10 rw = boost::ref(y); std::cout<<rw.get()<<std::endl; //12 BOOST_AUTO(rw2,boost::ref(rw)); std::cout<<rw2.get()<<std::endl; //12 }