其他
C++过去的这一年
作者 | Bartek
译者 | 苏本如,责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
【导读】本文旨在让我们回顾 C++ 2019年里的变化和发展!我们将重点关注本年度里 C++ 上发生的重大事件,标准的发展,工具的变化等等……
以下为译文:
免责声明:本文提出的观点仅代表个人立场,并不代表整个ISO C++标准委员会的意见。
简介
以下是本年度最让我关注的三大方面:
C++ 20即将发布。 开发工具。 C++在开发者中的稳定位置。
模块(Modules) 协程(Coroutines) 标准库开箱即用的概念(Concepts) 范围(Ranges) constexpr支持:new/ delete,dynamic_cast,try/catch,虚拟 constexpr 向量和字符串 计时(Chrono):日历、时区支持 std::format – 详见此处C++20中的std::format std::span std::jthread
模块 - P1103! 协程 - N4736! 将结构化绑定扩展为更像变量申明 - P1091R3 std::polymorphic_allocator<> - P0339 std::midpoint和std::lerp - P0811 std::execution::unseq执行策略 - P1001 std::ssize 返回有符号数的自由函数 - P1227 查找时预先计算hash值 - P0920
Herb Sutter – 会议报告:冬季ISO C++ 标准会议(科纳) Botond Ballo - 会议报告: 2019年2月科纳C++标准会议 cor3ntin – 科纳会议报告 Timur Dumler – 会议报告:2019年2月夏威夷科纳ISO C++标准委员会会议
合约(Contracts)从C++20中移除,Contracts研究小组成立。 文本格式化支持:std::format("For C++{}", 20) - P0645 C++20同步库 - P1135 constexpr 内存分配 - P0784 constexpr std::vector - P1004 constexpr std::string - P0980 线程可中断 join 支持(Stop Token) - P0660 source_location - P1208 using enum - P1099 constinit关键字 - P1143 数学常量 (std::numbers::pi和 friends) - P0631 将概念(Concepts)的命名方式从PascalCase(驼峰式命名法)改为snake_case(蛇形命名法) - P1754 废弃volatile关键字 - P1152 布局兼容性和指针互易性特征 - P0466 构造函数的nodiscard 属性 - P1771 改进的iterator concept hierarchy - P1207 Move-only视图 - P1456 附加视图和range适配器 - P1035 运算符<=>加入标准库 - P1614 类模板参数推导的扩展 - P1021
r/cpp thread - cologne meeting(https://www.reddit.com/r/cpp/comments/cfk9de/201907_cologne_iso_c_committee_trip_report_the/) post Cologne mailing(https://isocpp.org/blog/2019/08/2019-08-post-cologne-mailing-available)
Herb Sutter – 会议报告:夏季ISO C++ 标准会议(科隆) Timur Dumler – 会议报告: 2019年7月德国科隆C++委员会会议, Botond Ballo – 会议报告: 2019年7月德国科隆C++ 标准会议 Silexica – 会议报告: 2019年度德国科隆ISO C++会议 Guy Davidson – 德国之行:科隆会议报告
Herb Sutter - 会议报告:秋季ISO C++ 标准会议(贝尔法斯特) Botond Ballo - 会议报告:2019年11月贝尔法斯特C++标准会议 Ben Craig 会议报告:贝尔法斯特的独立错误 Guy Davidson - 在我家后院召开的WG21会议: 贝尔法斯特会议报告
基于Visual Studio IntelliCode的人工智能辅助代码补全。 在C++ MSBuild和CMake项目中对 Clang 和 MSVC 的 Clang-Tidy 的支持。 AddressSanitizer支持 Windows 上使用 MSVC 编译的项目 和CMake更好的集成。 概念(Concepts)在版本16.3 中可用 对to_chars()的全面支持, 完善了C++17中的要求。 提供了一个名为C++ Build Insights的新工具集。欲知详情,请参阅C++团队博客。
AddressSanitizer (ASan)在 Windows上支持MSVC | C++ 团队博客 在Visual Studio中使用clang-tidy进行代码分析 | C++ 团队博客 Visual Studio 2019版本16.3开始支持C+20 Concepts特性 | C++团队博客
GCC对当前C++特性的支持(https://gcc.gnu.org/projects/cxx-status.html) Libstdc++ 状态(https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html)
Clang对当前C++特性的支持(https://gcc.gnu.org/projects/cxx-status.html) libc++ C++1z 状态(https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html)
Intel® C++ Compiler对C++14特性的支持(https://software.intel.com/en-us/articles/c14-features-supported-by-intel-c-compiler) Intel® C++ Compiler对C++17特性的支持(https://software.intel.com/en-us/articles/c17-features-supported-by-intel-c-compiler)
版本10.3.2新增功能:用于64位Windows环境的C++17 -- 实现在所有Windows环境下使用C++17 Clang编译器。 新的Delphi和C++Builder RAD服务器课程,已在Embarcadero学院、 Embarcadero博客站点、开发者工具和IDERA社区提供 RAD Studio 10.3新增功能: C++17的异步代码补全,以及其他功能
Clang Tidy Clang-Include-Fixer AddressSanitizer MemorySanitizer 对于Visual Studio,你可以使用Clang Power Tools,它是Visual Studio的一个扩展.
它由Victor Ciura开发 (@ciura_victor)。 最新版本 5.5于2019年12月18日发布. 详见版本变更日志。 它同时还有一个付费版本。
Tomato Soup博客文章 | Visual Assist 版本2353已经可用(https://blog.wholetomato.com/2019/11/11/visual-assist-build-2353-is-available/)。
ReSharper C++博客文章 | ReSharper C++ 版本2019.3: 支持C++20概念,类型提示, #includes排序, 和其他特性(https://blog.jetbrains.com/rscpp/resharper-cpp-2019-3/)。
CLion博客文章 | CLion 2019.3:一个专注于性能和一些期待已久的增强功能的高质量发布(https://blog.jetbrains.com/clion/2019/11/clion-2019-3-release/)。
CppDepend – 2019.3版本的新功能(https://www.cppdepend.com/cppdependv2019)! 今年,该团队增加了对如下工作的支持:MISRA编码准则、VS 2019、QT项目、UI简化和嵌入式项目。
最新版本是PVS-Studio 版本7.05,请参阅今年的所有发布说明(https://www.viva64.com/en/m/0010/)。 今年的一些显著改进包括:.NET Core 3和3.1项目分析、MISRA编码准则支持、40多项新检查、对Java和SonarQube插件的支持。
CppCon – 2019年9月举行 C++Now – 2019年5月举行 Meeting C++ - 2019年11月举行 ACCU – 春季会议在2019年4月举行,秋季会议在11月举行
C++ Slack频道: https://cpplang.now.sh/ #include C++(https://www.includecpp.org/)
TIOBE 编程语言排行榜中,C++排名第4。它的占比现在为6.196%,去年超过了7%,两年前大约5.5%。详情请参见Tiobe Index。 在 StackOverflow 调查中,C++排名第9,超过了C,但是低于Java,C#,当然也低于Javascript,而它在上一年排名第10。详见:2019 Stack Overflow开发者调查(https://insights.stackoverflow.com/survey/2019#technology) 在GitHub调查中,C++排名从去年的第5下降到今年的第6。详见:2019 Octoverse 统计报告(https://octoverse.github.com/#top-languages)
CppCon 2019大会 C++20 新特性和标准化 C++20中的模块(Modules)特性 协程(Coroutines) 概念(Concepts) 范围(Ranges) std::format Code::Dive 2019大会 Meeting C++ 2019大会 C++博客 - 帮助更容易学习和掌握最新的语言 C++ 书籍和课程 – 提升水平,更多的选择机会 C++ Cast C++ 社区 – 大会,用户组 越来越好用的工具:Clang build analyser, VS 2019, QTCreator, CLion
C++ 20即将发布。 开发工具 – 让编写C++代码更加容易! C++在开发者中的稳定位置
(*本文为AI科技大本营转载文章,转载请联系原作者)
◆
精彩推荐
◆
1、评选进行中,参与投票即有机会参与抽奖,60+公开课免费学习
如果群满100人,无法自动进入,可添加会议小助手微信:婷婷,151 0101 4297(电话同微信)
面对新型肺炎疫情,AI能做什么?
阿里腾讯华为在行动!程序员远程办公究竟用哪个视频会议好?
疫情防控,开发者集结出战!
图模型+Bert香不香?完全基于注意力机制的图表征学习模型Graph-Bert
疫情之下「在家办公模式」开启,你该选择哪些远程协同工具?
苹果2020iPhone 展望:相机大升级,5G首次接入
比特币区块链将分道扬镳、Libra 苦难继续,2020 区块链进入关键时期!
你点的每个“在看”,我都认真当成了AI