NoS*_*tAl 0 c++ lambda boost c++11
前一阵子我偶然发现了以下一行代码:
return accumulate(s, s + size, char(), (_1 ^ _2));
Run Code Online (Sandbox Code Playgroud)
它使用的是boost标题,但我一直认为它非常非常优雅(注意lambda没有命名输入参数,所以它超短.:)请注意我知道C++ 11有lambda函数,这是不是关于lambdas,而是关于这个很好的短语法.
使用硬编码类型......
return accumulate(s, s+size, char(), [](char l, char r){ return l ^ r; });
Run Code Online (Sandbox Code Playgroud)
当允许通用lambda时(C++ 14)......
return accumulate(s, s+size, char(), [](auto l, auto r){ return l ^ r; });
Run Code Online (Sandbox Code Playgroud)
现在,std :: bit_xor ......
return accumulate(s, s+size, char(), bit_xor<char>());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |