不那么新的modern C++简要学习笔记 logo 不那么新的modern C++简要学习笔记

这是一份学习笔记,记录了我学习C++11/14/17过程中遇到的各种新概念、技术、思想等,仅供有限的参考,如有任何错误或其他意见和建议,欢迎留言指出,万分感谢。

C++03

标准文档可阅读ISO/IEC 14882

C++11

标准文档可参考最终版草稿N3337,它与正式版标准文档(N3338)仅有微小的差异。官方标准文档ISO/IEC 14882:2014 (2016)已合入C++14的内容。

MSVC可以直接支持编译C++11代码,GCC和Clang需要在命令行参数指定-std=c++11,如:

$gcc -std=c++11 -o test main.cpp
$clang -std=c++11 -o test main.cpp

C++14

标准文档可参考最终版草稿N4140,它与正式版标准文档(N4141)仅有微小的差异。也可购买ISO/IEC 14882:2014 (2016)

MSVC可以直接支持编译C++14代码,GCC和Clang需要在命令行参数指定-std=c++14,如:

$gcc -std=c++14 -o test main.cpp
$clang -std=c++14 -o test main.cpp

C++17

标准文档可参考最终版草稿(即DIS,Draft International Standard)N4660,它与正式版标准文档(N4661)只有微小的差异。也可以购买ISO/IEC 14882:2017

MSVC 2017 15.7可以直接编译C++17代码,支持绝大多数C++17特性,GCC 8和Clang 5及更高版本支持全部C++17特性,需要在命令行参数指定-std=c++17,如:

$gcc -std=c++17 -o test main.cpp
$clang -std=c++17 -o test main.cpp

C++20

标准文档可参考最终版草稿(即DIS,Draft International Standard)N4860。也可以购买ISO/IEC 14882:2020

GCC和Clang需要在命令行参数指定-std=c++20,如:

$gcc -std=c++20 -o test main.cpp
$clang -std=c++20 -o test main.cpp

C++23

标准文档可参考最终版草稿(即DIS,Draft International Standard)N4950

GCC和Clang需要在命令行参数指定-std=c++23,如:

$gcc -std=c++23 -o test main.cpp
$clang -std=c++23 -o test main.cpp

注意

GCC和Clang除了以上-std=c++11, -std=c++14, -std=c++17-std=c++20选项外,还有对应的GNU版本-std=gnu++11, -std=gnu++14, -std=gnu++17-std=gnu++20,两者的区别在于后者多支持了GNU对C++语言的扩展,如果程序注意可移植性的话,比如需要用MSVC进行编译,则不应该使用GNU扩展

感觉不错,小额赞助一下!
missdeer WeChat Pay

微信扫一扫

missdeer AliPay

支付宝扫一扫

Hosted by Netlify, 本站由 @missdeer 创建,由 Jekyll 于 2024-03-12 生成,感谢 CloudCannon 制作的theme: Edition ,感谢 Let's Encrypt 提供免费的SSL证书服务。本站点采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。© 2017 - 2024