Boost logo

Boost Users :

Subject: Re: [Boost-users] multi_index_container with protected constructor
From: Pekka Seppänen (pekka.seppanen_at_[hidden])
Date: 2013-07-17 09:47:08


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 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