2014-11-17 18:01 GMT+01:00 Robert Ramey
Andrzej Krzemienski wrote
My idea is to provide another type wrapper, say safe_optional <T> , that would choose different tradeoffs: prefer "safety" to some flexibility and/or efficiency. It would probably be part of Boost.Optional library as the implementation can be reused - only the interface would be changed.
One downside of this solution is that we would have two libraries for doing nearly the same thing, which could "scatter" the community. There is a value for standardizing certain things and making them universal.
Can't this concern be addressed by making this an addition to the optional library. So that safe_optional<T> would be an wrapper around optional<T> with extra error checking?
In fact, Boost.Optional already comes with two interfaces: 1. optional_base<T> (with minimum set of operations) 2. optional<T> that derives from the former. Although the former one is not advertized in the documentation, the intent was that it is used by people who are not happy with the latter interface, so they can use it to build whatever interface they like. I was planning to use optional_base as a base for the new interface. First, I want to see peoples' reaction. Regards, &rzej