In our APIs we often need to return both some value and `bool` (or `tristate`) result. When we return pointer, at least in most cases we can assume `nullptr` means failure (but still the `tristate` case is not supported this way). But when value is returned we're adding `bool *ok` OUT parameter that's inconvenient in use.
Proposal: use tuples from C++11: http://blog.paphus.com/blog/2012/07/25/tuple-and-tie/
It's also advertised in //"No more output parameters"// section of the [[http://www.oreilly.com/programming/free/c++-today.csp|"C++ Today"]] book as well. (ask @staniek for an excerpt)