gpt4 book ai didi

c++ - 这是对 lambda 表达式的有效(ab)使用吗?

转载 作者:IT老高 更新时间:2023-10-28 22:35:08 27 4
gpt4 key购买 nike

正如我们都知道的那样,从嵌套循环break脱离外循环并不容易:

不过,您必须承认,所有这些都有些笨拙。尤其是缺少函数版本,因为缺少调用循环的上下文,因为您需要将循环中所需的所有内容作为参数传递。
此外,对于每个嵌套循环,第二个会变得更糟。
所以,我个人仍然认为 goto 版本是最干净的。


现在,考虑到所有 C++0x 之类的东西,第三个选项给我带来了利用 lambda 表达式的想法:

#include <iostream>

bool CheckCondition(){
return true;
}

bool CheckOtherCondition(){
return false;
}

int main(){
[&]{while(CheckCondition()){
for(;;){
if(!CheckOtherCondition())
return;
// do stuff...
}
// do stuff...
}}();
std::cout << "yep, broke out of it\n";
}

( Example at Ideone. )

这允许第三个选项提供的简单 return 的语义美,同时不受上下文问题的影响并且(几乎)与 goto 版本一样干净.它甚至比上述任何选项都更短(按字符)。


现在,在找到该语言的优美 (ab) 用法后,我学会了压抑自己的快乐,因为几乎总是存在某种缺点。这个有吗?还是有更好的方法来解决这个问题?

最佳答案

请不要在我管理的项目中这样做。在我看来,这是对 lambdas 的尴尬滥用。

goto 有用的地方使用 goto

关于c++ - 这是对 lambda 表达式的有效(ab)使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6077718/

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