for变量作用域(vc6与vs)

for变量:写在for循环初始语句中的变量。:for (int i=1,j=2; i<100; i++)

vc6的for变量 int i 的作用域

void func(bool condition)
{

    if (condition)
    {
        for(int i=0; i<100; i++)
        {
            printf("Line: %d ", i+1);
        }
    }
}

vs的for变量 int i 的作用域

void func(bool condition)
{

    if (condition)
    {
        for(int i=0; i<100; i++)
        {
            printf("Line: %d ", i+1);
        }
    }
}

可以在vs中通过如下设置来使用vc6的for变量的作用域(向下兼容)

关于vc6和vs对c++标准的支持

(1)vc6和vs都是完全支持C++03标准的(for变量的作用域在标准里面没有明确,所以vc6和vs实现有差别)

(2)c++11标准,vs从2010版本才开始支持

(3)主流编译器对C++11的支持情况

       GCC: C++0x/C++11 Support in GCC

       VS2010: C++0x Core Language Features In VC10: The Table

       VS2012: C++11 Features (Modern C++)

       VS2013: Support For C++11 Features (Modern C++)

       Clang: C++14, C++11 and C++98 Support in Clang

(4)VS2013中的C++11新特性

C++标准历史

发布时间文档通称备注
2017 ISO/IEC 14882:2017[6] C++17 第五个C++标准
2017 ISO/IEC TS 22277:2017[7] coroutines TS 协程库扩展
2017 ISO/IEC TS 21425:2017[8] ranges TS 提供范围机制
2017 ISO/IEC TS 19568:2017[9] library fundamentals TS 标准库扩展
2016 ISO/IEC TS 19571:2016[10] concurrency TS 用于并发计算的扩展
2015 ISO/IEC TS 19217:2015[11] concepts TS 概念库,用于优化编译期信息
2015 ISO/IEC TS 19841:2015[12] TM TS 事务性内存操作
2015 ISO/IEC TS 19570:2015[13] parallelism TS 用于并行计算的扩展
2015 ISO/IEC TS 18822:2015[14] filesystem TS 文件系统
2014 ISO/IEC 14882:2014[15] C++14 第四个C++标准
2011 ISO/IEC TR 24733:2011[16] - 十进制浮点数扩展
2011 ISO/IEC 14882:2011[17] C++11 第三个C++标准
2010 ISO/IEC TR 29124:2010[18] - 数学函数扩展
2007 ISO/IEC TR 19768:2007[19] C++TR1 C++技术报告:库扩展
2006 ISO/IEC TR 18015:2006[20] - C++性能技术报告
2003 ISO/IEC 14882:2003[21] C++03 第二个C++标准
1998 ISO/IEC 14882:1998[22] C++98 第一个C++标准

原文地址:https://www.cnblogs.com/kekec/p/4720245.html