
For some reason this thing don't work. I want to print a container of container..... #ifndef ARRAY_OPERATION_HPP #define ARRAY_OPERATION_HPP #include <iostream> #include <boost/lambda/lambda.hpp> template <typename T, template < typename ELEM, typename = std::allocator<ELEM> > class CONT
void print_array(const CONT<T>& array) { using namespace boost::lambda; std::for_each(array.begin(), array.end(), std::cout << _1 << " "); } template <typename T, template < typename ELEM, typename = std::allocator<ELEM> > class CONT
void print_2darray (const CONT<CONT<T> >& array) { using namespace boost::lambda; CONT<T> temp; std::for_each(array.begin(), array.end(), bind<T, CONT>(print_array<T, CONT>(), _1) ); } #endif /* ARRAY_OPERATION_HPP */ if i have std::list<std::list<double> > lOflDouble // insert some value in here. print_2darray<double>(lOflDouble); /* 30 C:\cs classes\cs540\c++\ContainerOperation.hpp no matching function for call to `print_array()' */ On 4/14/06, David Abrahams <dave@boost-consulting.com> wrote:
"chun ping wang" <cablepuff@gmail.com> writes:
Heres a simple question, that i want to do.
Lets say you have a function call void f(double);
and then you want to apply f to each argument inside vector<double> a;
for_each(a.begin(), a.end(), f(_1));
// the example above isn't possible..is there a simple way to do this?
for_each(a.begin(), a.end(), bind(f, _1));
HTH,
-- Dave Abrahams Boost Consulting www.boost-consulting.com
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users