Boost logo

Boost Users :

Subject: Re: [Boost-users] transform_iterator and c++11 lambda expression
From: paul Fultz (pfultz2_at_[hidden])
Date: 2012-09-21 22:15:27


I use this wrapper:     #define RETURNS(...) -> decltype(__VA_ARGS__) { return (__VA_ARGS__); }     template<class Fun>     struct function_object     {         boost::optional<Fun> f;         function_object()         {}         function_object(Fun f): f(f)         {}         function_object(const function_object & rhs) : f(rhs.f)         {}         // Assignment operator is just a copy construction, which does not provide         // the strong exception guarantee.         function_object& operator=(const function_object& rhs)         {             if (this != &rhs)             {                 this->~function_object();                 new (this) function_object(rhs);             }             return *this;         }         template<class F>         struct result         {};         template<class F, class T>         struct result<F(T)>         {             typedef decltype(std::declval<Fun>()(std::declval<T>())) type;         };         template<class T>         auto operator()(T && x) const RETURNS((*f)(std::forward<T>(x)))         template<class T>         auto operator()(T && x) RETURNS((*f)(std::forward<T>(x)))     };     template<class F>     function_object<F> make_function_object(F f)     {         return function_object<F>(f);     } Then you can create the transform iterator like this:     boost::make_transform_iterator(my_itertor, make_function_object([](int& i) { return i + 1; })); ----- Original Message ----- > From: MM <finjulhich_at_[hidden]> > To: Boost-users_at_[hidden] > Cc: > Sent: Friday, September 21, 2012 6:37 PM > Subject: [Boost-users] transform_iterator and c++11 lambda expression > > hello > it would be great to be pass > > transform_iterator( my_iterator, []( reference ) {  return /// something } ); > > directly to STL algorithms. > > Currently, one needs to define separately the unarfy function as far > as i could see > > MM > _______________________________________________ > Boost-users mailing list > Boost-users_at_[hidden] > http://lists.boost.org/mailman/listinfo.cgi/boost-users >


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net