
Jeffrey Faust wrote:
My only complaint about boost::optional is that it is very difficult to see values in the debugger. I brought this up in a discussion at BoostCon, and Jeff Garland suggested I submit a patch.
Well, I have a patch. The change introduces a new private T* m_value and protected method update_debug() which sets this variable. The variable is only visible when building debug, and the method is empty in non-debug. From there, I simply call update_debug() in each public method that changes the storage.
The final result is that debuggers can see the variable data by looking at opt.m_value. When not set, the value is null.
Any thoughts?
If I want to see the result of an optional, I often write code that looks like the following: optional<int> opt; /// Time passes... if (opt) { const int &i = *opt; Then I can just watch i. I do the same thing with iterators, especially into sets and maps. Joe Gottman