multi_index_container with protected constructor

Hi,
I want to use boost::multi_index_container with a class that have
protected constructors, but the compile fails.
I think I should make multi_index_container a friend of my class, but I
don't know how.
#include <iostream>
#include

On 17.7.2013 16:07, Horváth Imre wrote:
Hi,
I want to use boost::multi_index_container with a class that have protected constructors, but the compile fails. I think I should make multi_index_container a friend of my class, but I don't know how.
I guess you don't want to do that (as quite likely you'd like to pass the instance around, ie. P, not create new n copies of Item), but add: explicit
Item(P item) : source(item->get_source()) , target(item->get_target()) { }
and it compiles. Yes, copy constructing via create(P item) works as expected with that trick done. My compiler choked on types too much, so didn't look where it actually tries to construct shared_ptr< Item > and feed that to constructor. But I think this is the main cause anyway and explicit keyword is there to help you out. -- Pekka

Thank you, it works! Best regards: Imre Horvath 2013. 07. 17, szerda keltezéssel 16.47-kor Pekka Seppänen ezt írta:
On 17.7.2013 16:07, Horváth Imre wrote:
Hi,
I want to use boost::multi_index_container with a class that have protected constructors, but the compile fails. I think I should make multi_index_container a friend of my class, but I don't know how.
I guess you don't want to do that (as quite likely you'd like to pass the instance around, ie. P, not create new n copies of Item), but add:
explicit
Item(P item) : source(item->get_source()) , target(item->get_target()) { }
and it compiles. Yes, copy constructing via create(P item) works as expected with that trick done.
My compiler choked on types too much, so didn't look where it actually tries to construct shared_ptr< Item > and feed that to constructor. But I think this is the main cause anyway and explicit keyword is there to help you out.
-- Pekka _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Horváth Imre
-
Pekka Seppänen