问题标签 [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.
c++ - 在 boost::lambda 中使用 boost::format
由于某种原因,我无法boost::format
在boost::lambda
. 这是我的代码的(希望)可编译的简化:
- 第一个
std::for_each
产生预期的输出 - 第二个
std::for_each
只输出没有任何数字的空格
这是为什么 ?我真的不熟悉,boost::lambda
所以我可能在这里遗漏了明显的东西。
请不要提出std::copy
基于答案的建议:我的实际代码不起作用std::vector
但在boost::fusion::vector
(std::for_each
实际上是boost::fusion::for_each
)。
c++ - boost::format() 输出运算符
我需要编写一个类,它将像cout一样通过运算符接受boost::format():
运算符的参数必须是哪种类型?这样该类将像这样声明:
谢谢。
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。
c++ - 真正的位置字符串格式?
(注意:我知道 Boost.Format,我正在寻找一种更好的方法来执行以下操作。)
首先是一个用例示例:在某些国家/地区,您可以通过先叫他/她的姓氏和最后的名字来命名一个人,而在其他国家则完全相反。
现在,对于我的代码,我目前使用 Boost.Format 以下列方式解决这个问题:
现在,我宁愿这样,即所有内容format
:
但遗憾的是,这不起作用,因为我得到了一个很好的解析异常。
是否有任何库具有真正的位置格式?甚至是我不知道的使用 Boost.Format 实现此目的的方法?
c++ - 是否可以将 Boost.Format 与预分配的缓冲区一起使用?
我想知道Boost.Format是否支持使用固定宽度/预分配的缓冲区作为输出而不是由 lib 本身管理的动态缓冲区?
也就是说,通常你会这样做:
因此 Boost:Format 库会自动为您分配足够的空间并管理“输出缓冲区”。
我想知道是否有任何方法可以将预定义的非动态缓冲区与 Boost.Format 一起使用,也就是说,类似于:
我知道我可以筛选示例、文档和源代码,但除了缺乏时间 atm。(以及遗漏某些东西的可能性)知道会很有趣: 如果不可能,如果有人能解释为什么(如果有/有具体的原因),那就太好了——这是故意的吗?它与 API 不匹配吗?...?
免责声明: 这个问题与性能无关!
c++ - 如何累积持续时间
我正在使用 boost::format 变量以秒为单位获取经过的时间
但是我多次使用计时器来累积持续时间。我想知道我可以使用哪种类型的变量来累积持续时间(使用运算符 +)。例如,我不知道如何从 boost::format 转换为 float
提前致谢
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
c++ - 将 %s 格式说明符与 boost::format 和 std::string 一起使用
我知道使用%s
格式说明符,std::string
这样会导致未定义的行为:
std::string
但是使用相同的说明符和 a with是否可以节省boost::format
?
%s
指定一个 (const) char*
,但我提供一个std::string
. 这也会导致UB吗?
c++ - boost::format 和自定义打印标准容器
我的命名空间ns
中有一个函数可以帮助我打印 STL 容器。例如:
这非常适合operator <<
直接打印:
但是,使用boost::format
是不可能的:
问题很明显:Boost 不知道我希望它使用我的自定义operator <<
来打印与我的命名空间无关的类型。除了在 中添加using
声明之外boost/format/feed_args.hpp
,有没有方便的方法来boost::format
查找 my operator <<
?
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:: 头文件被包含在没有异常规范的情况下?- 没有关闭异常,是吗?