Question

How do I print boolean values with boost::format as symbolic values?

Can this be done without boost::io::group? It seems that flags sent to the stream beforehand get retested:

#include <iomanip>
#include <iostream>
#include <boost/format.hpp>

int main()
{
  std::cout
    << std::boolalpha
    << true << " "
    << boost::format("%1% %2%\n")
         % true
         % boost::io::group(std::boolalpha, true)
    ;
}

Output

true 1 true
Was it helpful?

Solution 2

It doesn't appear to me that you can.

I looked at the Boost.Format documentation and the code, and didn't see anything.

On the other hand, the sample code shows how to write a formatter for a user-defined type. You could write one for "bool"

OTHER TIPS

You can archive that like this:

#include <iomanip>
#include <iostream>
#include <boost/format.hpp>

int main()
{
  std::cout
    << std::boolalpha
    << true << " "
    << boost::format("%1$b %2%\n")
         % true
         % boost::io::group(std::boolalpha, true)
    ;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top