问题标签 [boost-format]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8926 浏览

c++ - 为什么 boost::format 不能直接转换为 std::string?

以下是不可能的:

您必须显式调用 str() 方法:

它只是语法糖,但为什么不添加转换呢?

0 投票
2 回答
1958 浏览

c++ - 使用 boost::format 打印布尔值作为符号值?

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

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

输出

0 投票
3 回答
8676 浏览

c++ - 在没有科学计数法的情况下在 C++ 中格式化 n 个有效数字

我想将浮点值格式化为 n 个有效数字,但从不使用科学记数法(即使它会更短)。

格式规范%f不处理有效数字,%g有时会给我科学记数法(这不适合我的使用)。

我想要表单中的值"123", "12.3", "1.23" or "0.000000123"

有没有一种优雅的方法可以使用C++ 或 boost做到这一点?

0 投票
1 回答
2652 浏览

c++ - c++ boost format float - 如何指定我不想要的。并跟随零

我想boost::format用来将浮点数转换为字符串。以下是预期结果的几个示例:

我目前正在使用

它主要工作,但结果0"0.0"并且1.00001"1.0"我想要的时候"0""1"不是。

我需要改变什么来摆脱无意义的.0

0 投票
2 回答
2154 浏览

c++ - 使用 boost::format 的 C++ 便捷日志记录语句

我想设计一个具有以下特点的日志功能:

  • 基于 std::string 而不是 char*
  • 支持可变数量的变量,例如 printf
  • 接受作为第一个参数的严重性级别
  • 避免严重级别低于日志级别时的格式化开销
  • 像 printf 一样简单,或者几乎如此

我倾向于使用 boost::format 因为它的自动类型转换。但这里有一些我看到的问题:

它的语法有点尴尬:有点难看format("Mgr %s on pid %d is in state %s" % mgr % pid % s)(变量的列表性质没有逗号就不那么明显了)。日志调用如下所示:

更糟糕的是,是否有可能实现 mylog() 来检查我们是否在构造格式对象 之前记录了 INFO 消息?

我想到的另一种看起来更接近 printf 的方法是

甚至

实现将类似于:

这肯定会推迟格式对象的构建,直到需要它。但是据我所知,在遍历变量参数列表时,无法判断您何时到达终点!

有人可以建议一种语法上简单的技术来实现这一点吗?

注意:我有 g++ 4.4,它不支持所有的 c++11(虽然它支持可变参数模板)

0 投票
2 回答
653 浏览

c++ - Boost.Format 的编译时检查

Clang 和 GCC 都可以检查 printf 样式函数的格式字符串和参数之间的不匹配。例如,他们会抱怨这样的陈述:

Boost.Format是否存在类似的东西?换句话说,是否有任何编译器开关、静态分析工具等可以警告代码,例如

或者

0 投票
1 回答
1259 浏览

c++ - C ++如何显示小数部分的确切数字

C ++(或boost lib)中有什么方法可以显示给定数字的小数部分吗?但我不想在小数部分打印尾随 0(例如1.000, 1.500)。看这个案例:

问题是setprecision打印第 1 行和第 2 行的方式不同,我希望同时打印0.7141.714. 并且仍然保留第 3 行和第 4 行11.5.

0 投票
3 回答
198 浏览

c++ - C++ 变量生命周期——需要临时返回的解决方法

我有一个 C++ 对象 ( boost::format),它有一个str()返回std::string.

因此,当我需要一个格式化的 C 字符串时,我需要编写如下内容:

我觉得这很冗长,我非常需要它。我想创建一个派生类,它有一个operator char*并且会像这样工作(Ch = char 或 wchar_t):

但是当然,str()当函数返回时,返回的字符串会被释放,不会返回有效的 C 字符串。

有什么解决方法吗?

变通方法需要创建一个只要周围函数调用就存在的字符串:

0 投票
4 回答
13900 浏览

c++ - C++11 等价于 Boost.Format

像 C++11 标准中的 Boost.Format 之类的东西吗?我已经能够避免使用具有更好 C++11 选项的 Boost 来满足我所拥有的所有其他需求。

就此而言,Boost.Format 与 Python 的语法并无二致format()。像这样的东西会更好。

0 投票
3 回答
4919 浏览

c++ - 带有可变模板参数的 boost::format

假设我有一个printf使用完美转发的类似函数(用于记录):

(我没有编译这个,但我的真正功能遵循这个指南)

如何将可变参数“展开”到 boost::format 变量中f