gpt4 book ai didi

c++11 - C++11 lambda 的正确缩进

转载 作者:行者123 更新时间:2023-12-03 06:37:40 25 4
gpt4 key购买 nike

是否有一种公认的“标准”方式来格式化 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 风格,所以理想情况下它是“适合相同的风格”。

最佳答案

我一直更喜欢为缩进的相对级别赋予其自己的语义值,并将结束分隔符与包含其匹配的开始分隔符的行垂直对齐。这使得复杂的语句(例如使用 lambda 表达式作为参数的语句)更易于阅读:

auto it = std::find_if(
myVec.begin(),
myVec.end(),
[id = 42] (const Element& e){ return e.id() == id;}
);

或者(例如,如果 lambda 主体对于一行来说太长)

auto it = std::find_if(
myVec.begin(),
myVec.end(),
[id = 42] (const Element& e){
return e.id() == id;
}
);

关于c++11 - C++11 lambda 的正确缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26510888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com