Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2004-09-17 07:41:22


Fernando Cacciola wrote:
> "David Abrahams" <dave_at_[hidden]> escribió en el mensaje
> news:uvfee6kpk.fsf_at_boost-consulting.com...
>>
>> I'm finding the documentation for in-place factories highly
>> frustrating. There's no formal documentation for
>> TypedInPlaceFactory, and almost no description whatsoever for
>> InPlaceFactory. None of what's there describes how these things
>> interact with optional; it isn't even mentioned in the corresponding
>> section!
>>
> That stuff started out almost as an experiment and was intended to be
> generally usefull for all sorts of container classes. [...]

>From the documentation:

"For example, one member of this familiy looks like:

template<class T,class A0, class A1>
class TypedInPlaceFactory2
{
  A0 m_a0 ; A1 m_a1 ;

public:

  TypedInPlaceFactory2( A0 const& a0, A1 const& a1 ) : m_a0(a0), m_a1(a1) {}

  void construct ( void* p ) { new (p) T(m_a0,m_a1) ; }
} ;

A wrapper class aware of this can use it as:

class W
{
  X wrapped_ ;

public:

  W ( X const& x ) : wrapped_(x) {}
  W ( TypedInPlaceFactory2 const& fac ) { fac.construct(&wrapped_) ; }
} ;"

This doesn't look correct to me. W::wrapped_ is default constructed and then
another X is placement-constructed on top of it.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk