|
Boost Users : |
Subject: Re: [Boost-users] how to make a vector to derivedClass::create() methods
From: Victor.Whiskey.Yankee (victor.whiskey.yankee_at_[hidden])
Date: 2009-01-23 08:59:11
Mr. Watanabe,
Thank you for your great help. It works well now.
And thanks for helping everyone else so much on this list!
-Victor
Steven Watanabe wrote:
> AMDG
>
> Victor.Whiskey.Yankee wrote:
>> Thank you for your patience.
>> I am really wanting to make a factory that holds a
>> std::map where the pair.first is a std::string and
>> the pair.second is somehow a pointer to a constructor or create()
>> method to any of several derived classes>.
>>
>> I thought expressing in terms of vector might be simplified and enough
>> for my understanding.
>>
>
> I see. How about using Boost.Function like this:
>
> std::map<std::string, boost::function<Base*()> > factory_impl;
>
> //...
>
> factory_impl["Derived1"] = boost::lambda::new_ptr<Derived1>();
>
> // ...
>
> Base* b = factory_impl["Derived1"]();
>
> In Christ,
> Steven Watanabe
>
> _______________________________________________
> 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