用boost :: format作为符号值打印bool?

时间:2012-12-04 11:53:25

标签: c++ boost boost-format

如何使用boost :: format作为符号值打印布尔值?

这可以在没有boost::io::group的情况下完成吗?似乎事先发送到流的标志会被重新测试:

#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)
    ;
}

输出

true 1 true

2 个答案:

答案 0 :(得分:1)

在我看来,你可以。

我查看了Boost.Format文档和代码,但没有看到任何内容。

另一方面,the sample code显示了如何为用户定义的类型编写格式化程序。你可以写一个“bool”

答案 1 :(得分:0)

您可以这样存档:

#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)
    ;
}