问题标签 [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 回答
560 浏览

c++ - 在 boost::lambda 中使用 boost::format

由于某种原因,我无法boost::formatboost::lambda. 这是我的代码的(希望)可编译的简化:

  • 第一个std::for_each产生预期的输出
  • 第二个std::for_each只输出没有任何数字的空格

这是为什么 ?我真的不熟悉,boost::lambda所以我可能在这里遗漏了明显的东西。

请不要提出std::copy基于答案的建议:我的实际代码不起作用std::vector但在boost::fusion::vectorstd::for_each实际上是boost::fusion::for_each)。

0 投票
1 回答
697 浏览

c++ - boost::format() 输出运算符

我需要编写一个类,它将像cout一样通过运算符接受boost::format()

运算符的参数必须是哪种类型?这样该类将像这样声明:

谢谢。

0 投票
2 回答
1470 浏览

c++ - 使用带有 UTF-8 字符串的 boost::format %s 说明符

我们正在向具有大型代码库的现有应用程序添加对 UTF8 的支持。此应用程序使用boost::format(),并且非 ASCII 字符的输出未正确对齐。具体来说,当使用%{width}.{length}s 说明符时,boost::format()计算字符数,这不会对 utf8 字符串“做正确的事”。我认为应该可以根据...更改要使用的字符串长度代码(可能是 string::size()utf8len()或类似的东西?

在这种情况下,将现有代码库更改为使用 UCS2(或 UCS4,或 UTF-16 等)是不切实际的,但boost::format()如果需要,可以进行修改。我希望其他人已经遇到了这种需求,并且可以为我指出一个可能的解决方案。

注意:我发现了一些关于将语言环境与 utf8 结合使用的网页,但其中大部分似乎更适用于在流中转换为 utf8 和 UCS4。

0 投票
6 回答
690 浏览

c++ - 真正的位置字符串格式?

(注意:我知道 Boost.Format,我正在寻找一种更好的方法来执行以下操作。)
首先是一个用例示例:在某些国家/地区,您可以通过先叫他/她的姓氏和最后的名字来命名一个人,而在其他国家则完全相反。

现在,对于我的代码,我目前使用 Boost.Format 以下列方式解决这个问题:

现在,我宁愿这样,即所有内容format

但遗憾的是,这不起作用,因为我得到了一个很好的解析异常。

是否有任何库具有真正的位置格式?甚至是我不知道的使用 Boost.Format 实现此目的的方法?

0 投票
1 回答
883 浏览

c++ - 是否可以将 Boost.Format 与预分配的缓冲区一起使用?

我想知道Boost.Format是否支持使用固定宽度/预分配的缓冲区作为输出而不是由 lib 本身管理的动态缓冲区?

也就是说,通常你会这样做:

因此 Boost:Format 库会自动为您分配足够的空间并管理“输出缓冲区”。

我想知道是否有任何方法可以将预定义的非动态缓冲区与 Boost.Format 一起使用,也就是说,类似于:

我知道我可以筛选示例、文档和源代码,但除了缺乏时间 atm。(以及遗漏某些东西的可能性)知道会很有趣: 如果不可能,如果有人能解释为什么(如果有/有具体的原因),那就太好了——这是故意的吗?它与 API 不匹配吗?...?

免责声明: 这个问题与性能无关

0 投票
1 回答
113 浏览

c++ - 如何累积持续时间

我正在使用 boost::format 变量以秒为单位获取经过的时间

但是我多次使用计时器来累积持续时间。我想知道我可以使用哪种类型的变量来累积持续时间(使用运算符 +)。例如,我不知道如何从 boost::format 转换为 float

提前致谢

0 投票
1 回答
223 浏览

c++ - 你如何使用带有 boost 格式的 CAtlStringW?

我试过这个:

并格式化为“hello 004B54D8”,但我希望它是“hello world”。我尝试了一些变体,例如在命名空间中定义 operator<<。我错过了什么?operator<< 似乎没有被调用。

谢谢。

boost 格式文档提供了以下用于格式化自定义类型的示例:http: //www.boost.org/doc/libs/1_49_0/libs/format/example/sample_userType.cpp

0 投票
1 回答
12108 浏览

c++ - 将 %s 格式说明符与 boost::format 和 std::string 一起使用

我知道使用%s格式说明符,std::string这样会导致未定义的行为:

std::string但是使用相同的说明符和 a with是否可以节省boost::format

%s指定一个 (const) char*,但我提供一个std::string. 这也会导致UB吗?

0 投票
4 回答
1545 浏览

c++ - boost::format 和自定义打印标准容器

我的命名空间ns中有一个函数可以帮助我打印 STL 容器。例如:

这非常适合operator <<直接打印:

但是,使用boost::format是不可能的:

问题很明显:Boost 不知道我希望它使用我的自定义operator <<来打印与我的命名空间无关的类型。除了在 中添加using声明之外boost/format/feed_args.hpp,有没有方便的方法来boost::format查找 my operator <<

0 投票
2 回答
1060 浏览

visual-c++ - VC++ 2012 和 Boost 不兼容 - 库头文件中的“throw()”规范

我有一个无法使用 boost::format 的新项目。我收到一个编译器错误,抱怨 boost 对虚函数 ~basic_altstringbuf 的覆盖缺少“throw()”。即使是最简单的使用 boost::format 的尝试也是如此。

我还有其他项目可以正常工作。我已经验证新项目使用相同的包含路径进行 boost 和 VC++ 包含。所有项目都将“启用 C++ 异常”设置为“是”。我能想到的唯一解释是,工作的项目有一些#DEFINE 或一些设置,这些设置会禁用 std:: 包含文件中的那些恶意异常规范。但我不知道它可能是什么或在哪里。有任何想法吗?

错误 1 ​​错误 C2694: 'boost::io::basic_altstringbuf::~basic_altstringbuf(void)': 重写虚函数的异常规范比基类虚成员函数 'std::basic_streambuf<_Elem,_Traits>::~basic_streambuf (无效)抛出()

编辑:推论问题:VS++ 2012 中是否有一个属性项会导致 std:: 头文件被包含在没有异常规范的情况下?- 没有关闭异常,是吗?