Home | Libraries | People | FAQ | More |
Suppose you want to ask users to choose some number (an int
).
One of the valid responses is to choose nothing, which is represented by
an uninitialized optional<int>
.
You want to make a histogram showing how many times each choice was made.
You can use an std::map
:
std::map<boost::optional<int>, int> choices; for (int i = 0; i < LIMIT; ++i) { boost::optional<int> choice = readChoice(); ++choices[choice]; }
This works because optional<T>
is LessThanComparable
whenever T
is LessThanComparable
. In this case
the state of being uninitialized is treated as a yet another value of T
, which is compared less than any value
of T
.