测试编译器是否支持C++11新特性(1)
2012-05-20 01:36
543 查看
/*- ========================================================== * 文件名 :TestCpp11_1.cpp * 开发人员:袁培荣 * 当前版本:1.0.0.2595 * 创建时间:2012-05-20 * 修改时间:2012-05-20 * 功能说明:测试编译器是否支持C++11新特性(1) * 版权说明:版权所有 袁培荣 YuanPeirong * 编译环境:Windows 7(x64) SP1 简体中文专业版 * 编译器: Visual Studio 2010 SP1(中文旗舰版) MinGW 20120426 GNU GCC 4.6.2 MinGW Distro 9.0 GNU GCC 4.7.0 Visual C++ 6.0 SP6(中文企业版) - ==========================================================*/ #include <iostream> #include <vector> using namespace std; //=====1.测试右值引用和move语意 bool is_r_value(int &&) { return true; } bool is_r_value(const int &) { return false; } void test(int && i) { is_r_value(i); is_r_value(std::move<int>(i)); } //==================================== int main(int argc, char* argv[]) { //=====2.测试以范围为基础的 for 循环 int my_array[5] = {1, 2, 3, 4, 5}; for (int &x : my_array) { x *= 2; } //==================================== //=====3.测试型别推导 constexpr int GetFive() {return 5;} int some_value[GetFive() + 5]; const std::vector<int> v(1); auto a = v[0]; decltype(v[0])b; auto c = 0; auto d = c; decltype(c) e; decltype((c)) f = e; decltype(0) g; //==================================== return 0; } //=====4.测试初始化表达式 class C { int a=7; //在类的定义时初始化非静态变量,只有C++11支持 public: C(); }; //==================================== //==================================== //=====测试结果 // 测试标准:编译对测试代码不报错为支持,否则不支持 //1.Visual Studio 2010 SP1(中文旗舰版) 全部不支持 //2.MinGW 20120426 GNU GCC 4.6.2 // 支持前两个,不支持后两个 // (注意,编译时应该开启新特性 -std=c++0x 或者 -std=gnu++0x) // 命令: g++ TestCpp11_1.cpp -o TestCpp11_1 -std=c++0x //3.MinGW Distro 9.0 GNU GCC 4.7.0 // 很高兴,全部支持 // (注意,编译时应该开启新特性 -std=c++0x 或者 -std=gnu++0x) // 命令: g++ TestCpp11_1.cpp -o TestCpp11_1 -std=c++0x //4.Visual C++ 6.0 SP6(中文企业版) 全部不支持 //====================================
相关文章推荐
- 测试你的编译器是否支持c++0x(c++11)
- 测试编译器是否支持C++11新特性(1)
- 使用CMakeLists.txt 判断编译器是否支持C++11
- 目前主流编译器对C++11特性的支持情况
- cmake检测g++编译器是否支持c++11
- VS2010编译器工具cl对c++11标准支持情况测试
- 系统支持的是否大小端的测试程序
- 编译器对语言特性的支持
- 测试你的浏览器是否支持WebGL(Does My Browser Support WebGL)
- 测试是否支持Flash?解决交互Flash中拖拽滞后的现象
- 关于C++11特性的支持
- 测试android手机是否支持某种感应器
- Eclipse开发linux c/cpp---支持c++11特性
- iOS 上线因iPv6被拒,查询服务器是否支持iPv6,mac设置iPv6网络,手机测试iPv6
- 如何测试系统是否支持ext4
- HTML5特性 > 本地储存 >检测是否支持本地存储(Local Storage,sessionStorage)
- C++11特性无法在编译器上运行的解决办法
- 不能支持C++11的特性~,升级到4.8.2
- C++11 Features in Visual C++ 11 - VS2010对C++11特性支持的情况
- 测试是否支持DOMAttrModified