在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(),[id = 42] (const Element& e) { return e.id() == id;});
要么
3)
auto it = std::find_if(myVec.begin(),[id = 42] (const Element& e) { return e.id() == id; });
或4)
auto it = std::find_if(myVec.begin(),[id = 42] (const Element& e) { return e.id() == id; });
或任何其他回车,空格,制表符的组合
注意:我在我的代码中使用了Allman样式,所以理想情况下它将“适合相同的样式”.
解决方法
我一直倾向于使用自己的语义值赋予相关级别的缩进,并将闭合分隔符与包含其匹配的开头分隔符的行垂直对齐.这使得复杂语句(像那些用lambda表达式作为参数)更容易阅读:
auto it = std::find_if( myVec.begin(),[id = 42] (const Element& e){ return e.id() == id;} );
或者(如果,例如,lambda体太长了一行)
auto it = std::find_if( myVec.begin(),[id = 42] (const Element& e){ return e.id() == id; } );
原文地址:https://www.jb51.cc/c/113404.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。