"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