"David Abrahams" <[EMAIL PROTECTED]> escribió en el mensaje
news:[EMAIL PROTECTED]
> "Fernando Cacciola" <[EMAIL PROTECTED]> writes:
>
> > I thougth about placement new as a way to achieve
> > in-place optional construction, precisely because of the forwarding
> > problem, but I couldn't get it to really work.
> > What would it be like, exactly?
> >
> > I considered:
> >
> > (a)
> >
> >  optional<int> opt ( new ( optional_tag ) int(1) ) ;
> >
> > this won't work because 'opt.m_storge' doesn't exist yet inside
placement
> > new.
> >
> > (b)
> >
> > optional<int> opt ;
> > new (opt) int(2);
> >
> > this would be close, but what should I do with the 'int*'
> > which is the result of the new?
>
> Why do you feel the need to do something with it?  Do you do something
> with the pointer when you do placement new in the optional
> implementation?
>
No, right're right :-)
Is perfectly possible to simply discard it, though to me it looks kind of
akward in anything but deeply low-level code.

Anyway, doesn't this require a definition of placement operator new for each
T?

Fernando Cacciola



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to