免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
C 過(guò)去的這一年

以下為譯文:

免責(zé)聲明:本文提出的觀點(diǎn)僅代表個(gè)人立場(chǎng),并不代表整個(gè)ISO C++標(biāo)準(zhǔn)委員會(huì)的意見(jiàn)。

簡(jiǎn)介

以下是本年度最讓我關(guān)注的三大方面:

  • C++ 20即將發(fā)布。
  • 開(kāi)發(fā)工具。
  • C++在開(kāi)發(fā)者中的穩(wěn)定位置。
請(qǐng)繼續(xù)閱讀以獲得對(duì)以上三大方面的全面了解。

重大事件時(shí)間表
下表按日期順序列出了本年度C++發(fā)生的重大事件:

對(duì)C++11/14的編譯器支持
為了保持完整性,筆者在這里先提醒一下:Clang(從版本3.4開(kāi)始),GCC(從版本5開(kāi)始)和Intel C++ Compiler(從版本15開(kāi)始)已經(jīng)完全支持C++ 11/14。
Visual Studio團(tuán)隊(duì)宣布Visual Studio 2017 15.7版完全支持C++ 17,這也意味著它對(duì)C++ 11/14的支持。現(xiàn)在,你可以構(gòu)建復(fù)雜的代碼庫(kù),如boost::hana或range v3。
既然C++ 11/14在所有主流編譯器中都得到了支持,那么就不存在任何理由不使用現(xiàn)代C++了。

對(duì)C++ 17的編譯器支持
C++17作為ISO/IEC 14882標(biāo)準(zhǔn):2017 編程語(yǔ)言–C++發(fā)布于2019年12月。
你可以在這里下載一個(gè)免費(fèi)的官方文檔的最終版:N4700, 2017-10-16, PDF。
支持C++的編譯器的一份完整列表可以參考這里:C++17 編譯器支持。
你也可以閱讀我的博客文章:C++17特性(https://www.bfilipek.com/2017/01/cpp17features.html)。
關(guān)于C++17的語(yǔ)言特性:
從Clang版本5.0、 GCC版本8.0、 Visual Studio版本15.7和Intel C++ Compiler版本19.0.1開(kāi)始,所有編譯器都支持C++17的語(yǔ)言特性。
標(biāo)準(zhǔn)庫(kù)上還有更多的工作需要完成,特別是針對(duì)并行算法和文件系統(tǒng)等重要問(wèn)題的工作。
對(duì)于std :: filesystem的支持,你需要GCC版本8.1(或者支持更好的版本9.1)、Clang版本3.9(或者支持更好的版本7.0)和Visual Studio 2017版本15.7。
并行算法的更新最早在Visual Studio 2017 15.7中提供,但是隨著之后的更新,MSVC團(tuán)隊(duì)又添加了更多算法。
接下來(lái)可以使用的是Intel PSTL實(shí)現(xiàn),它也被添加到GCC版本9.1中。你需要Intel線程構(gòu)建塊(TBB - Threading Building Block) 作為后端實(shí)現(xiàn)(欲知詳情,請(qǐng)參考下面這篇文章):
在Linux和macOS上使用GCC 9.1和Intel TBB實(shí)現(xiàn)C++ 17 STL并行算法(作者:Paul Silisteanu) :https://solarianprogrammer.com/2019/05/09/cpp-17-stl-parallel-algorithms-gcc-intel-tbb-linux-macos/
而Clang庫(kù)對(duì)并行算法的支持還需要繼續(xù)等待。
另一個(gè)問(wèn)題是低層轉(zhuǎn)換函數(shù)的實(shí)現(xiàn)。
Visual Studio從版本15.7開(kāi)始支持在from_chars() / to_chars()函數(shù)中支持整形參數(shù),在版本15.8中又添加了對(duì)from_chars()的浮點(diǎn)支持。但是完全一致的支持直到版本16.4(對(duì)to_chars()的浮點(diǎn)支持)才開(kāi)始可用。
到目前為止Clang和GCC版本只支持整數(shù)。原因可能是MSVC STL(標(biāo)準(zhǔn)模板庫(kù))的實(shí)現(xiàn)是開(kāi)源的,我們可以預(yù)期一些代碼將被移植到其他標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)中。

C++20
關(guān)于C++20的討論今年占據(jù)了主導(dǎo)地位。在德國(guó)科隆舉行的夏季ISO C++標(biāo)準(zhǔn)會(huì)議后,C++20的特性已經(jīng)凍結(jié)。在稍晚時(shí)間舉行的貝爾法斯特C++標(biāo)準(zhǔn)會(huì)議上,第一批國(guó)家機(jī)構(gòu)的一些意見(jiàn)得到了解決。
總之,這意味著我們明年發(fā)布新的C++標(biāo)準(zhǔn)的道路會(huì)一馬平川!
下面列出C++20的主要特性:
  • 模塊(Modules)
  • 協(xié)程(Coroutines)
  • 標(biāo)準(zhǔn)庫(kù)開(kāi)箱即用的概念(Concepts)
  • 范圍(Ranges)
  • constexpr支持:new/ delete,dynamic_cast,try/catch,虛擬
  • constexpr 向量和字符串
  • 計(jì)時(shí)(Chrono):日歷、時(shí)區(qū)支持
  • std::format – 詳見(jiàn)此處C++20中的std::format
  • std::span
  • std::jthread
更重要的是,很多C++ 20的特性在流行的編譯器中已經(jīng)實(shí)現(xiàn)了。像模塊(Modules)支持這種最重要的工作仍然沒(méi)有完成(我們只是完成了一些實(shí)驗(yàn)性的Module-TS實(shí)現(xiàn))。
像以往一樣,完整的編譯器支持列表可以在cppreference網(wǎng)站:C++20編譯器支持頁(yè)面(https://en.cppreference.com/w/cpp/compiler_support#cpp2a)上找到。但是我想在這里列舉幾個(gè):

ISO C++標(biāo)準(zhǔn)會(huì)議
今年共計(jì)舉行了三次C++標(biāo)準(zhǔn)委員會(huì)會(huì)議,分別在夏威夷的科納、德國(guó)的科隆和北愛(ài)爾蘭的貝爾法斯特舉行。似乎今年的委員會(huì)更愿意留在歐洲。
這里可以找到所有的會(huì)議計(jì)劃,包括:即將舉行的會(huì)議和已經(jīng)結(jié)束的會(huì)議(https://isocpp.org/std/meetings-and-participation/upcoming-meetings)。
下一次會(huì)議將于2020年2月在布拉格舉行。
二月: 夏威夷科納會(huì)議
在這次會(huì)議上,下列C++新特性投票后被批準(zhǔn)納入了C++20標(biāo)準(zhǔn):
  • 模塊 - P1103!
  • 協(xié)程 - N4736!
  • 將結(jié)構(gòu)化綁定擴(kuò)展為更像變量申明 - P1091R3
  • std::polymorphic_allocator<> - P0339
  • std::midpoint和std::lerp - P0811
  • std::execution::unseq執(zhí)行策略 - P1001
  • std::ssize 返回有符號(hào)數(shù)的自由函數(shù) - P1227
  • 查找時(shí)預(yù)先計(jì)算hash值 - P0920
并行化TS 第二版也被作為以下標(biāo)準(zhǔn)發(fā)布:
ISO/IEC TS 19570:2018編程語(yǔ)言 - 用于并行化的C++擴(kuò)展技術(shù)規(guī)范(https://www.iso.org/standard/70588.html)。
這次會(huì)議的主要會(huì)議報(bào)告摘要可以從如下兩個(gè)鏈接找到:
r/cpp: 2019-02 科納ISO C++標(biāo)準(zhǔn)委員會(huì)會(huì)議報(bào)告(https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_report_c20/)和科納會(huì)議后的郵件列表(https://isocpp.org/blog/2019/03/2019-03-post-kona-mailing-available)。
其他版本的會(huì)議報(bào)告鏈接如下:
  • Herb Sutter – 會(huì)議報(bào)告:冬季ISO C++ 標(biāo)準(zhǔn)會(huì)議(科納)
  • Botond Ballo - 會(huì)議報(bào)告: 2019年2月科納C++標(biāo)準(zhǔn)會(huì)議
  • cor3ntin – 科納會(huì)議報(bào)告
  • Timur Dumler – 會(huì)議報(bào)告:2019年2月夏威夷科納ISO C++標(biāo)準(zhǔn)委員會(huì)會(huì)議
七月: 德國(guó)科隆會(huì)議
這次會(huì)議是C++20標(biāo)準(zhǔn)的特性凍結(jié)會(huì)議。這是最后一次投票的機(jī)會(huì)。
另外,有一個(gè)主要的特性在這次會(huì)議上從草案中淘汰了。雖然Contracts(合約)很有吸引力,但實(shí)際上,委員會(huì)未能就最后的實(shí)施要點(diǎn)達(dá)成一致。因此,最后的決定是最好成立一個(gè)獨(dú)立的研究小組,嘗試在C++ 23中納入這一特性。
這次會(huì)議批準(zhǔn)的一些重要特性和變化如下:
  • 合約(Contracts)從C++20中移除,Contracts研究小組成立。
  • 文本格式化支持:std::format('For C++{}', 20) - P0645
  • C++20同步庫(kù) - P1135
  • constexpr 內(nèi)存分配 - P0784
  • constexpr std::vector - P1004
  • constexpr std::string - P0980
  • 線程可中斷 join 支持(Stop Token) - P0660
  • source_location - P1208
  • using enum - P1099
  • constinit關(guān)鍵字 - P1143
  • 數(shù)學(xué)常量 (std::numbers::pi和 friends) - P0631
  • 將概念(Concepts)的命名方式從PascalCase(駝峰式命名法)改為snake_case(蛇形命名法) - P1754
  • 廢棄volatile關(guān)鍵字 - P1152
  • 布局兼容性和指針互易性特征 - P0466
  • 構(gòu)造函數(shù)的nodiscard 屬性 - P1771
  • 改進(jìn)的iterator concept hierarchy - P1207
  • Move-only視圖 - P1456
  • 附加視圖和range適配器 - P1035
  • 運(yùn)算符<=>加入標(biāo)準(zhǔn)庫(kù) - P1614
  • 類模板參數(shù)推導(dǎo)的擴(kuò)展 - P1021
這次會(huì)議的主要議程報(bào)告摘要可以在下面兩個(gè)地方找到:
  • 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)
會(huì)議報(bào)告:
  • Herb Sutter – 會(huì)議報(bào)告:夏季ISO C++ 標(biāo)準(zhǔn)會(huì)議(科隆)
  • Timur Dumler – 會(huì)議報(bào)告: 2019年7月德國(guó)科隆C++委員會(huì)會(huì)議, 
  • Botond Ballo – 會(huì)議報(bào)告: 2019年7月德國(guó)科隆C++ 標(biāo)準(zhǔn)會(huì)議
  • Silexica – 會(huì)議報(bào)告: 2019年度德國(guó)科隆ISO C++會(huì)議
  • Guy Davidson – 德國(guó)之行:科隆會(huì)議報(bào)告
十一月,北愛(ài)爾蘭貝爾法斯特會(huì)議:
這一次,委員會(huì)不再投票任何新的特性,他們的大部分時(shí)間花在解決國(guó)家機(jī)構(gòu)針對(duì)C++ 20草案提出的意見(jiàn)。
主要的會(huì)議報(bào)告發(fā)布在r/cpp網(wǎng)站上,會(huì)后的郵件列表地址為: https://isocpp.org/blog/2019/12/2019-11-post-belfast-mailing-available
其他的會(huì)議報(bào)告有:
  • Herb Sutter - 會(huì)議報(bào)告:秋季ISO C++ 標(biāo)準(zhǔn)會(huì)議(貝爾法斯特)
  • Botond Ballo - 會(huì)議報(bào)告:2019年11月貝爾法斯特C++標(biāo)準(zhǔn)會(huì)議
  • Ben Craig    會(huì)議報(bào)告:貝爾法斯特的獨(dú)立錯(cuò)誤
  • Guy Davidson - 在我家后院召開(kāi)的WG21會(huì)議: 貝爾法斯特會(huì)議報(bào)告

編譯器最新版本及說(shuō)明
下面列出編譯器的最新版本和最引入注目的更新。
Visual Studio
最新版本是Visual Studio 2019版本16.4,最后一次更新發(fā)生在12月3日。
 – 版本說(shuō)明:https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes
今年推出了新版Visual Studio 2019!它為已經(jīng)非常出色的集成開(kāi)發(fā)環(huán)境(IDE)帶來(lái)了許多新的特性和增強(qiáng)功能。
這里是最初發(fā)布時(shí)的博客文章:
Visual Studio 2019: Code faster. Work smarter. Create the future. | Visual Studio Blog(https://devblogs.microsoft.com/visualstudio/visual-studio-2019-code-faster-work-smarter-create-the-future/)。 
一些重要的特性:
  • 基于Visual Studio IntelliCode的人工智能輔助代碼補(bǔ)全。
  • 在C++ MSBuild和CMake項(xiàng)目中對(duì) Clang 和 MSVC 的 Clang-Tidy 的支持。
  • AddressSanitizer支持 Windows 上使用 MSVC 編譯的項(xiàng)目
  • 和CMake更好的集成。
  • 概念(Concepts)在版本16.3 中可用
  • 對(duì)to_chars()的全面支持, 完善了C++17中的要求。
  • 提供了一個(gè)名為C++ Build Insights的新工具集。欲知詳情,請(qǐng)參閱C++團(tuán)隊(duì)博客。
另一個(gè)主要的更新來(lái)自Cppcon大會(huì),MSVC團(tuán)隊(duì)在會(huì)上宣布將他們的標(biāo)準(zhǔn)模板庫(kù)實(shí)現(xiàn)開(kāi)源!詳情請(qǐng)參見(jiàn):
MSVC宣布開(kāi)源其標(biāo)準(zhǔn)模板庫(kù)實(shí)現(xiàn) | C++ 團(tuán)隊(duì)博客(https://devblogs.microsoft.com/cppblog/open-sourcing-msvcs-stl/)
一些其他新聞:
  • AddressSanitizer (ASan)在 Windows上支持MSVC | C++ 團(tuán)隊(duì)博客
  • 在Visual Studio中使用clang-tidy進(jìn)行代碼分析 | C++ 團(tuán)隊(duì)博客
  • Visual Studio 2019版本16.3開(kāi)始支持C+20 Concepts特性 | C++團(tuán)隊(duì)博客
這里有一個(gè)關(guān)于C++標(biāo)準(zhǔn)(包括C++20)的一致性的文檔:
Microsoft C++語(yǔ)言一致性清單(https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=vs-2019)。
GCC
最新的穩(wěn)定版本9.2,發(fā)布于8月12日,詳情請(qǐng)參見(jiàn):GCC9發(fā)布系列更新(https://www.gnu.org/software/gcc/gcc-9/)。
  • GCC對(duì)當(dāng)前C++特性的支持(https://gcc.gnu.org/projects/cxx-status.html)
  • Libstdc++ 狀態(tài)(https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html)
Clang
最新的穩(wěn)定版本9.0,發(fā)布于2019年9月19日。詳情請(qǐng)參見(jiàn):版本發(fā)布說(shuō)明
  • Clang對(duì)當(dāng)前C++特性的支持(https://gcc.gnu.org/projects/cxx-status.html)
  • libc++ C++1z 狀態(tài)(https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html)
Intel Compiler
最新版本19.1,發(fā)布于2019年4月2日。詳情請(qǐng)參見(jiàn):版本發(fā)布說(shuō)明(https://software.intel.com/en-us/articles/intel-cpp-compiler-release-notes)
  • Intel? C++ Compiler對(duì)C++14特性的支持(https://software.intel.com/en-us/articles/c14-features-supported-by-intel-c-compiler)
  • Intel? C++ Compiler對(duì)C++17特性的支持(https://software.intel.com/en-us/articles/c17-features-supported-by-intel-c-compiler)
C++ Builder
最新版本為Rio 10.3 更新3,于2019年11月21日發(fā)布,詳見(jiàn)版本發(fā)布說(shuō)明。
集成開(kāi)發(fā)環(huán)境(IDE)- Embarcadero C++ Builder使用了一個(gè)經(jīng)過(guò)修改的Clang編譯器(版本5.5)和一個(gè)Dinkumware標(biāo)準(zhǔn)模板庫(kù)(STL)實(shí)現(xiàn),它可以與Win32和Win64應(yīng)用程序一起工作。這是一個(gè)功能全面的IDE,用于從單一C++代碼庫(kù)構(gòu)建iOS、安卓、Windows和macOS應(yīng)用程序。
一些相關(guān)新聞:
  • 版本10.3.2新增功能:用于64位Windows環(huán)境的C++17 -- 實(shí)現(xiàn)在所有Windows環(huán)境下使用C++17 Clang編譯器。
  • 新的Delphi和C++Builder RAD服務(wù)器課程,已在Embarcadero學(xué)院、 Embarcadero博客站點(diǎn)、開(kāi)發(fā)者工具和IDERA社區(qū)提供
  • RAD Studio 10.3新增功能: C++17的異步代碼補(bǔ)全,以及其他功能
這里是一份C++特性的一致性清單:編譯器對(duì)現(xiàn)代C++語(yǔ)言特性的支持(http://docwiki.embarcadero.com/RADStudio/Rio/en/Modern_C%2B%2B_Language_Features_Compliance_Status)

各種工具
當(dāng)編譯器幫助C++代碼完成了主要任務(wù)時(shí),我們也不能忘記其他工具的重要性。
以下是一些重要的工具,值得了解一下:
Clang 工具:
Clang/LLVM 提供了許多強(qiáng)大的實(shí)用程序,例如:
  • Clang Tidy
  • Clang-Include-Fixer
  • AddressSanitizer
  • MemorySanitizer
  • 對(duì)于Visual Studio,你可以使用Clang Power Tools,它是Visual Studio的一個(gè)擴(kuò)展.
  • 它由Victor Ciura開(kāi)發(fā) (@ciura_victor)。
  • 最新版本 5.5于2019年12月18日發(fā)布. 詳見(jiàn)版本變更日志。
  • 它同時(shí)還有一個(gè)付費(fèi)版本。
集成開(kāi)發(fā)環(huán)境
Visual Assist – 最新版本發(fā)布于2019年11月11日。詳見(jiàn):
  • Tomato Soup博客文章 | Visual Assist 版本2353已經(jīng)可用(https://blog.wholetomato.com/2019/11/11/visual-assist-build-2353-is-available/)。
ReSharper C++ - 最新版本為2019.3, 詳見(jiàn):
  • ReSharper C++博客文章 | ReSharper C++ 版本2019.3: 支持C++20概念,類型提示, #includes排序, 和其他特性(https://blog.jetbrains.com/rscpp/resharper-cpp-2019-3/)。
CLion - 最新版本為2019.3, 詳見(jiàn):
  • CLion博客文章 | CLion 2019.3:一個(gè)專注于性能和一些期待已久的增強(qiáng)功能的高質(zhì)量發(fā)布(https://blog.jetbrains.com/clion/2019/11/clion-2019-3-release/)。
Cevelop版本1.13.0 發(fā)布(https://www.cevelop.com/2019/10/23/cevelop-1.13.0-release.html)。
為了更好地理解代碼,你還可以使用SourceTrail。它最近作為完全免費(fèi)版本發(fā)布!詳見(jiàn):
SourceTrail開(kāi)發(fā)者博客 | SourceTrail現(xiàn)在已是免費(fèi)的開(kāi)源軟件。
代碼分析器:
CppDepend 版本2019.3:
  • CppDepend – 2019.3版本的新功能(https://www.cppdepend.com/cppdependv2019)!
  • 今年,該團(tuán)隊(duì)增加了對(duì)如下工作的支持:MISRA編碼準(zhǔn)則、VS 2019、QT項(xiàng)目、UI簡(jiǎn)化和嵌入式項(xiàng)目。
PVS-Studio:這是一個(gè)使用C、C++和C#編寫的,用于在程序源代碼中進(jìn)行錯(cuò)誤檢測(cè)的工具。在Windows和Linux環(huán)境下都能夠工作。
  • 最新版本是PVS-Studio 版本7.05,請(qǐng)參閱今年的所有發(fā)布說(shuō)明(https://www.viva64.com/en/m/0010/)。
  • 今年的一些顯著改進(jìn)包括:.NET Core 3和3.1項(xiàng)目分析、MISRA編碼準(zhǔn)則支持、40多項(xiàng)新檢查、對(duì)Java和SonarQube插件的支持。
包管理器:
Conan– 版本1.21已經(jīng)可用。
Microsoft/vcpkg: VC++打包工具– 一個(gè)適用于Windows、Linux和MacOS環(huán)境的開(kāi)源C++庫(kù)管理器。

C++相關(guān)會(huì)議
我們沒(méi)有理由抱怨C++會(huì)議的缺乏。實(shí)際上今年有很多會(huì)議機(jī)會(huì),尤其是在春季和秋季,下面是幾個(gè)會(huì)議的例子:
  • CppCon – 2019年9月舉行
  • C++Now – 2019年5月舉行
  • Meeting C++ - 2019年11月舉行
  • ACCU – 春季會(huì)議在2019年4月舉行,秋季會(huì)議在11月舉行
還有很多其他的會(huì)議,如:Code::Dive、C++意大利大會(huì)、C++ on Sea、C++ 意大利日、C++俄羅斯大會(huì)、核心C++ 2019大會(huì)、等等。
如果你沒(méi)有參加過(guò)任何一個(gè)會(huì)議,你可以在YouTube上快速輸入它的名字,就會(huì)從中找到大部分演講的視頻,這很令人驚訝。你也可以使用一些網(wǎng)絡(luò)搜索引擎很容易地找到相關(guān)會(huì)議報(bào)告。
以防萬(wàn)一,這里是ISO C++ 網(wǎng)站上的全球注冊(cè)會(huì)議的鏈接:C++全球會(huì)議和 FAQ(https://isocpp.org/wiki/faq/conferences-worldwide/)。
社區(qū)和用戶組
用戶組提供給你遇見(jiàn)其他C++程序員,分享你的經(jīng)驗(yàn)和學(xué)習(xí)新事物的機(jī)會(huì)。我強(qiáng)烈建議你定期訪問(wèn)這些用戶組,或者至少偶爾訪問(wèn)一次。
我很高興,我所在的城市(Cracow)的用戶組C++ Krakow用戶組(https://www.meetup.com/C-User-Group-Cracow):今年將繼續(xù)存在,如果你住在附近的話可以加入!
如果你在查看完這個(gè)全球用戶組列表后確認(rèn)你附近沒(méi)有C++用戶組。你還可以加入如下用戶組:
  • C++ Slack頻道: https://cpplang.now.sh/
  • #include C++(https://www.includecpp.org/)
C++ Poland
此外,今年我們還在波蘭推出了C++博客:C++ Polska。我們有幾個(gè)活躍的作者每個(gè)月都會(huì)在那里分享很棒的內(nèi)容!
同時(shí)我們也啟動(dòng)開(kāi)始了一個(gè)Slack頻道,在那里你可以討論任何C++和非C++的東西:加入這里:C++ Polska Slack(https://bit.ly/cpppolskaslack)

書(shū)籍和課程
今年的一些發(fā)行的書(shū)籍和發(fā)布的課程值得一看:
有一個(gè)驚喜是John Lakos的書(shū)!我等了好幾年,終于有貨了!
下面是一些流行的C++自出版書(shū)籍的打印版本:

受歡迎程度
C++在哪些領(lǐng)域受歡迎?它的份額都被JavaScript蠶食了嗎?
顯然不是,因?yàn)樵谀承╊I(lǐng)域C++已經(jīng)成長(zhǎng)或保持在一個(gè)穩(wěn)定的位置。
讓我們看看一些圖表/統(tǒng)計(jì)數(shù)據(jù):
  • TIOBE 編程語(yǔ)言排行榜中,C++排名第4。它的占比現(xiàn)在為6.196%,去年超過(guò)了7%,兩年前大約5.5%。詳情請(qǐng)參見(jiàn)Tiobe Index。
  • 在 StackOverflow 調(diào)查中,C++排名第9,超過(guò)了C,但是低于Java,C#,當(dāng)然也低于Javascript,而它在上一年排名第10。詳見(jiàn):2019 Stack Overflow開(kāi)發(fā)者調(diào)查(https://insights.stackoverflow.com/survey/2019#technology)
  • 在GitHub調(diào)查中,C++排名從去年的第5下降到今年的第6。詳見(jiàn):2019 Octoverse 統(tǒng)計(jì)報(bào)告(https://octoverse.github.com/#top-languages)
我個(gè)人覺(jué)得,C++仍然很強(qiáng)大。也許它并不完美,也不容易學(xué)習(xí),但是很多代碼仍然是用這種語(yǔ)言構(gòu)建的。Rust或其他系統(tǒng)語(yǔ)言不會(huì)很快取代它。它的工具越來(lái)越好,而這個(gè)語(yǔ)言正在致力于降低它的復(fù)雜性,所以初學(xué)者的體驗(yàn)希望是越來(lái)越好。
然而,C++只是工具的一種,我們很感激今天我們有很多工具可以使用。
我還找到了Daniel Lemire最近發(fā)表的一篇文章,十年前他對(duì)程序開(kāi)發(fā)和編程語(yǔ)言做了一些預(yù)測(cè)。他對(duì)C++的增長(zhǎng)感到驚訝。
讓我們看看Daniel Lemire的評(píng)價(jià):
我認(rèn)為從2010開(kāi)始,C++已經(jīng)成為一種更好的語(yǔ)言。這并不容易,但已經(jīng)超出了我的預(yù)期。

問(wèn)卷調(diào)查
一個(gè)多星期前,我做了一個(gè)快速的問(wèn)卷調(diào)查,希望得到一些關(guān)于C++使用的數(shù)據(jù)。我收到了574個(gè)回復(fù)!感謝大家!
C++ 標(biāo)準(zhǔn)的使用
在日常工作中,你使用哪個(gè)C++標(biāo)準(zhǔn)?
(注:以上百分比的總和不是100%)。
在這份調(diào)查中,我沒(méi)有明確“使用”的準(zhǔn)確含義,所以它既可以指生產(chǎn)環(huán)境的編碼,也可以指業(yè)余項(xiàng)目的編碼。比如,我看到C++20的使用率很高,但我相信它主要用于測(cè)試,還沒(méi)有用于完整的生產(chǎn)環(huán)境,或者,也許我錯(cuò)了?
C++17的使用經(jīng)驗(yàn)
你對(duì)C++ 17的使用有什么經(jīng)驗(yàn)?
我們可以看到,今年C++17標(biāo)準(zhǔn)的采用率在穩(wěn)步增長(zhǎng)。
C++20的使用經(jīng)驗(yàn)
你對(duì)C++20的使用有什么經(jīng)驗(yàn)?
編譯器的使用
你使用什么編譯器?
(注:以上百分比的總和不是100%)。
你還用哪些其他的開(kāi)發(fā)工具?
(注:以上百分比的總和不是100%)。
去年我沒(méi)有問(wèn)這個(gè)問(wèn)題。
我認(rèn)為這個(gè)問(wèn)題中的“debuggers”不是個(gè)好選項(xiàng),因?yàn)槲覀兛梢约僭O(shè)所有的開(kāi)發(fā)人員在某個(gè)時(shí)候都會(huì)使用它。
當(dāng)然還有一些“其他”的答案,包括:ccache、meson、make、Boost build、QMake、Autotools、cmake format、Emacs、Whole Tomato。
你認(rèn)為2019年發(fā)生的最好的事情是什么?
這是一個(gè)開(kāi)放性的問(wèn)題,根據(jù)我收集到的回答,主要有以下幾件大事(以下列表基于答案中出現(xiàn)的順序,沒(méi)有特殊的排序):
  • CppCon 2019大會(huì)
  • C++20 新特性和標(biāo)準(zhǔn)化
  • C++20中的模塊(Modules)特性
  • 協(xié)程(Coroutines)
  • 概念(Concepts)
  • 范圍(Ranges)
  • std::format
  • Code::Dive 2019大會(huì)
  • Meeting C++ 2019大會(huì)
  • C++博客 - 幫助更容易學(xué)習(xí)和掌握最新的語(yǔ)言
  • C++ 書(shū)籍和課程 – 提升水平,更多的選擇機(jī)會(huì)
  • C++ Cast
  • C++ 社區(qū) – 大會(huì),用戶組
  • 越來(lái)越好用的工具:Clang build analyser, VS 2019, QTCreator, CLion
有些人還列出了一些個(gè)人成就:例如,開(kāi)始使用C++17,在大會(huì)上的第一次演講。有人提到在項(xiàng)目中引入Conan,有人換了工作。還有人反饋說(shuō)“終于退休了”。這些對(duì)所有人都有益處!
我也很高興看到有人說(shuō)“最好的是我的書(shū)”。謝謝:)
給個(gè)對(duì)這個(gè)問(wèn)題的回答例子:
“最好的事情是了解了C++17的細(xì)節(jié)”, 當(dāng)然,這個(gè)免費(fèi)版本堅(jiān)定了我在項(xiàng)目中使用它的想法。
其他問(wèn)卷調(diào)查
C++標(biāo)準(zhǔn)委員會(huì)在今年的二月份也發(fā)出了一份問(wèn)卷調(diào)查。他們?cè)O(shè)法獲得了2000多份回復(fù)。
這份問(wèn)卷調(diào)查表和結(jié)果可以在這里找到:第二次C++基金會(huì)年度開(kāi)發(fā)者問(wèn)卷調(diào)查:標(biāo)準(zhǔn)C++ (https://www.jetbrains.com/lp/devecosystem-2019/cpp/)
調(diào)查結(jié)果.
還有一項(xiàng)來(lái)自Jetbrains的調(diào)查:C++ 2019 - 2019信息圖表中開(kāi)發(fā)者生態(tài)系統(tǒng)狀態(tài)調(diào)查(https://www.jetbrains.com/lp/devecosystem-2019/cpp/)

總結(jié)
本年度我想強(qiáng)調(diào)的就以下三件事情:
  • C++ 20即將發(fā)布。
  • 開(kāi)發(fā)工具 – 讓編寫C++代碼更加容易!
  • C++在開(kāi)發(fā)者中的穩(wěn)定位置
總而言之,我認(rèn)為在未來(lái)的十年,我們可以以一種積極樂(lè)觀的態(tài)度看待C++。雖然我們無(wú)法預(yù)知更遠(yuǎn)的將來(lái)會(huì)發(fā)生什么,但是至少在接下來(lái)的十年里,我相信C++應(yīng)該是穩(wěn)定的。有了所有這些工具的幫助,新的C++標(biāo)準(zhǔn)編寫的C++代碼會(huì)更加容易訪問(wèn),并且更加不容易出錯(cuò)。在可預(yù)見(jiàn)的將來(lái),C++仍然是追求性能的應(yīng)用程序的無(wú)二選擇,甚至它會(huì)取代C和Fortran。
原文:https://www.bfilipek.com/2019/12/cpp-status-2019.html

(*本文為AI科技大本營(yíng)轉(zhuǎn)載文章,轉(zhuǎn)載請(qǐng)聯(lián)系原作者)


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
現(xiàn)代化工具鏈在大規(guī)模 C 項(xiàng)目中的技術(shù)實(shí)踐
除了gcc vc,你知道這些c語(yǔ)言編譯器嗎?他們有什么區(qū)別?
C語(yǔ)言編譯器之二,Clang
Visual Studio:優(yōu)化了復(fù)制/移動(dòng)省略
C 與 C 40 年的愛(ài)恨情仇
Visual Studio 2017發(fā)布15.9版本更新
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服