【发布时间】:2014-10-22 15:13:06
【问题描述】:
在 C++ >= 11 中是否有一种公认的“标准”方式来格式化 lambda 表达式?尤其是当放入通用算法时。
例如:
1)
auto it = std::find_if(myVec.begin(),
myVec.end(),
[id = 42] (const Element& e)
{ return e.id() == id;});
或者 2)
auto it = std::find_if(myVec.begin(),
myVec.end(),
[id = 42]
(const Element& e)
{ return e.id() == id;});
或者 3)
auto it = std::find_if(myVec.begin(),
myVec.end(),
[id = 42] (const Element& e)
{
return e.id() == id;
});
或 4)
auto it = std::find_if(myVec.begin(),
myVec.end(),
[id = 42] (const Element& e)
{
return e.id() == id;
});
或回车、空格、制表符的任何其他组合... 注意:我在我的代码中使用 Allman 风格,所以理想情况下它会“符合相同的风格”。
【问题讨论】:
-
不,请注意我不喜欢其中任何一个;P
-
显然是见仁见智。一方面,我不会投票关闭它,因为我想看到答案和投票。
-
选项 4 在我看来是最糟糕的,因为它完全混淆了花括号包围的块是 lambda 主体,首先当 lambda 的捕获和参数部分写在同一个行作为分配给
it。
标签: c++11 lambda indentation