![]() |
1
2
我认为,对于这种情况,您应该使用boost.bind而不是boost.lambda。问题的一部分是boost::io::group是一个函数模板,它接受并返回数量可变的对象,这使得很难为函数声明创建适当的签名。我将用一个简单的签名创建一个字符串格式函数,然后使用boost.bind从中创建一个特定的格式函数。即
|
![]() |
2
1
您应该再次检查boost.lambda的文档,看看它能做什么,不能做什么。例如,由于点运算符不可重载,因此不能像这样调用成员函数
据我所知,这实际上扩展到了所有非运算符函数调用。对于创建格式对象,您需要通过如下方式推迟它的创建:
您可以看到,有了所有额外的噪声(绑定、构造函数、常量),您就得到了一个相当复杂、很长且难以破译的lambda表达式。最好的方法可能是完全避免它,只使用一个简单的函数对象
|
![]() |
Andre · Boost日志琐碎自动刷新 6 年前 |
![]() |
Vitor · 如何使用boost::bind追加参数? 6 年前 |
![]() |
slepasteur · 提高MSM编译速度 6 年前 |
![]() |
werk jlcv · 如何快速删除数百万个文件 6 年前 |
![]() |
hromer · 我的Boost正则表达式与任何内容都不匹配 7 年前 |
![]() |
user997112 · 使用互斥量和条件变量跨内存提升进程间共享向量 7 年前 |