
Joel de Guzman <joel@boost-consulting.com> writes:
David Abrahams wrote:
"Peter Dimov" <pdimov@mmltd.net> writes:
Gennadiy Rozental wrote:
I believe this version is much less intuitive. optional<T> v is still value of type T which may or may not be present. Accordingly when we print it we print the value if it present or print nothing if it not.
This isn't very useful. The output cannot be read back, and when printing a sequence of optionals much of the information is lost. Agreed. I was going to say that an empty optional should print something, but couldn't articulate the reasons. Thanks.
Perhaps do as the tuples do?
[123] <- a non-empty optional<int> [] <- an empty optional<T>
If you want to be unambiguous, it has to be more like: [hello] <- a non-empty optional<std::string> [] <- a non-empty optional<std::string> (the string is empty) _ <- an empty optional<T> -- Dave Abrahams Boost Consulting www.boost-consulting.com