Boost logo

Boost Users :

From: Meryl Silverburgh (silverburgh.meryl_at_[hidden])
Date: 2006-02-15 12:19:45


Thanks. But I have the following compiler error. Thanks for any idea to fix it.

code:
#include "boost/lambda/bind.hpp"
#include "boost/lambda/lambda.hpp"

using namespace std;

using namespace boost::lambda;

transform(inputs.begin(), inputs.end(), bdl.begin(), _1 =
bind(new_ptr<Rect>()));

../TestBlockData.cpp: In member function 'void
TestBlockData::buildBlockDataList(std::vector<std::string,
std::allocator<std::string> >&, BlockDataList&)':
../TestBlockData.cpp:119: error: '_1' was not declared in this scope
../TestBlockData.cpp:119: error: 'new_ptr' was not declared in this scope
../TestBlockData.cpp:119: error: expected primary-expression before '>' token
../TestBlockData.cpp:119: error: expected primary-expression before ')' token

On 2/14/06, Peter Dimov <pdimov_at_[hidden]> wrote:
> Meryl Silverburgh wrote:
> > How can I use boost:bind library to bind to constructor of a class.
> >
> > Right now, I have code like this:
> > class build
> > {
> > public:
> >
> > Rect* operator()(string& str)
> > {
> > return new Rect(str);
> > }
> >
> > };
> >
> > void TestBlockData::buildRectList( vector<string>& inputs, RectList&
> > bdl) {
> >
> > transform(inputs.begin(), inputs.end(), bdl.begin(), build());
> > }
> >
> > I wonder if I can get rid of the whole "build class" by using
> > boost::bind library.
>
> No, you can't; boost::bind can only adapt existing function objects into new
> function objects, but as a general rule it can't create function objects
> from scratch. The Lambda library has new_ptr<Rect>() that may work for you,
> though:
>
> http://www.boost.org/doc/html/lambda/le_in_details.html#lambda.construction_and_destruction
>
> _______________________________________________
> 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