打印带有 boost::format 的布尔值作为符号值

Printing bools with boost::format as symbolic values?

本文关键字:符号 布尔值 format boost 打印      更新时间:2023-10-16

如何打印以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

你可以像这样存档:

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

在我看来,你不可能。

我查看了 Boost.Format 文档和代码,什么也没看到。

另一方面,示例代码演示如何为用户定义类型编写格式化程序。你可以为"bool"写一个