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


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


  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, gregod at, cpdaniel at, john at