gpt4 book ai didi

c++ - For循环在自己的花括号内

转载 作者:行者123 更新时间:2023-12-02 10:34:55 24 4
gpt4 key购买 nike

我遇到了这种for循环布局:

#include <iostream>
int main()
{
{
for (int i = 0; i != 10; ++i)
{
std::cout << "delete i->second;" << std::endl;
}
}

{
for (size_t i = 0; i < 20; ++i)
{
std::cout << "delete m_indices[i];" << std::endl;
}
}
return 0;
}

我想知道这括号的额外用途是什么?这在我们的代码库中出现了几次。

最佳答案

曾几何时,许多月前,VS6存在并广受欢迎。但是,它未能符合许多C++标准。在标准正式发布之前(同年)发布时,这是合理的;据我所知,它确实遵守了标准草案。

在草案和正式标准之间更改的标准之一是在第一部分中创建的for循环变量的生存期。导致以下代码无法编译

{
for (int i=0; i<1; ++i){}
for (int i=0; i<2; ++i){}
}

因为 i由第二个for循环重新定义。

其他编译器也遇到了此错误;我重点介绍VS6,因为它是标准发布后许多年以来Visual Studio的唯一版本,但从未针对此特定问题发布更新。意味着它产生了更大的影响。

一种解决方案是将整个for循环强制进入其自己的作用域,如您所示。

关于c++ - For循环在自己的花括号内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60719037/

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