|
|
1
13
std::for_每个都需要一个一元函数(或者至少是一元函数的typedefs)。
(可能需要一些元编程来确保Range&不是双重参考) 然后在for_中使用它(当然,在将其调整为一元函数之后)。
因为string::begin和string::end都有常量和非常量变量,所以有必要对它们进行强制转换(正如litb在我写它们来测试我的答案时发现的…+1!)。这使得它非常冗长。Typedefs可以使它更加卫生,但要坚持一行文字主题:
这就要求重构。 最后,因为我很无聊,C++0x的加分:
编辑:boost::bind工作正常,不需要boost::lambda。 |
|
2
5
现在,您只需一行即可完成:
|
|
|
3
5
具有 Boost.Phoenix2 :
套用edd先生的话:可测量的令人敬畏:) 完整示例:
印刷品:
|
|
|
4
3
|