From: Fernando Cacciola (fernando_cacciola_at_[hidden])
Date: 2003-10-27 19:18:54
Thanks to reports from Roland, Joel and Peder, I think I have solved the
regressions with the VC compilers.
In this update I'm also addressing some issues raised before:
1) References are now assignable (this was requested by Joel)
2) New headers: "detail/none_t.hpp" and "utility/none.hpp" were added
providing a new type 'detail::none_t' and a new global constant
'boost::none' which allows you to use a more value-like interface,
supporting the following:
optional<T> opt ;
if ( opt != none )
// opt is initialized
opt = none ; // opt is reset() now.
NOTE: Boost.Optional itself doesn't care what is 'none_t' exactly as long as
it is a (distinct) type. So for the moment I wrote it as trivially as
possible. Discussions about the concept and definition of 'none_t' itself
can be done separately and in the future when concrete uses pop up.
The headers are split to allow Borland uses to precompile optional.hpp in a
.csm without the compiler complaining about initialized data (the global
instance 'none' is in a separate header that must be included explicitely)
3) OptionalPointee comparisons are now factored out in
"utility/compare_pointees.hpp" so that the concepts can be used
independently of optional<> itself (i.e., without having to include
I've tested this with VC7.1
Unfortunately, since I have quit my old job (I'm freelance now) I'm left
with VS .NET 2003 only (by now), so I can't test it with any other
I'll be looking at the compiler status tables.
I need to update the documentation, though, which I will do as soon as I
finish my second freelance project in about a couple of weeks.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk