以下為譯文:
免責(zé)聲明:本文提出的觀點(diǎn)僅代表個(gè)人立場(chǎng),并不代表整個(gè)ISO C++標(biāo)準(zhǔn)委員會(huì)的意見(jiàn)。
簡(jiǎn)介
以下是本年度最讓我關(guān)注的三大方面:
- C++在開(kāi)發(fā)者中的穩(wěn)定位置。
請(qǐng)繼續(xù)閱讀以獲得對(duì)以上三大方面的全面了解。
下表按日期順序列出了本年度C++發(fā)生的重大事件:為了保持完整性,筆者在這里先提醒一下: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++了。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)。從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)中。關(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ì)一馬平川!- 標(biāo)準(zhǔn)庫(kù)開(kāi)箱即用的概念(Concepts)
- constexpr支持:new/ delete,dynamic_cast,try/catch,虛擬
- 計(jì)時(shí)(Chrono):日歷、時(shí)區(qū)支持
- std::format – 詳見(jiàn)此處C++20中的std::format
更重要的是,很多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ì)議上,下列C++新特性投票后被批準(zhǔn)納入了C++20標(biāo)準(zhǔn):- 將結(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)。- 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ì)議
這次會(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
- constexpr 內(nèi)存分配 - P0784
- constexpr std::vector - P1004
- constexpr std::string - P0980
- 線程可中斷 join 支持(Stop Token) - P0660
- constinit關(guān)鍵字 - P1143
- 數(shù)學(xué)常量 (std::numbers::pi和 friends) - P0631
- 將概念(Concepts)的命名方式從PascalCase(駝峰式命名法)改為snake_case(蛇形命名法) - P1754
- 廢棄volatile關(guān)鍵字 - P1152
- 構(gòu)造函數(shù)的nodiscard 屬性 - P1771
- 改進(jìn)的iterator concept hierarchy - P1207
- 運(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)
- 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- 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)告
最新版本是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)功能。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)目
- 對(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)。最新的穩(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)
最新的穩(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)
最新版本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)
最新版本為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)用程序。- 版本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/LLVM 提供了許多強(qiáng)大的實(shí)用程序,例如:- 對(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)版本。
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版本的新功能(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插件的支持。
Microsoft/vcpkg: VC++打包工具– 一個(gè)適用于Windows、Linux和MacOS環(huán)境的開(kāi)源C++庫(kù)管理器。我們沒(méi)有理由抱怨C++會(huì)議的缺乏。實(shí)際上今年有很多會(huì)議機(jī)會(huì),尤其是在春季和秋季,下面是幾個(gè)會(huì)議的例子:- 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/)。用戶組提供給你遇見(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++博客:C++ Polska。我們有幾個(gè)活躍的作者每個(gè)月都會(huì)在那里分享很棒的內(nèi)容!同時(shí)我們也啟動(dòng)開(kāi)始了一個(gè)Slack頻道,在那里你可以討論任何C++和非C++的東西:加入這里:C++ Polska Slack(https://bit.ly/cpppolskaslack)今年的一些發(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ù)期。一個(gè)多星期前,我做了一個(gè)快速的問(wèn)卷調(diào)查,希望得到一些關(guān)于C++使用的數(shù)據(jù)。我收到了574個(gè)回復(fù)!感謝大家!在日常工作中,你使用哪個(gè)C++標(biāo)準(zhǔn)?在這份調(diào)查中,我沒(méi)有明確“使用”的準(zhǔn)確含義,所以它既可以指生產(chǎn)環(huán)境的編碼,也可以指業(yè)余項(xiàng)目的編碼。比如,我看到C++20的使用率很高,但我相信它主要用于測(cè)試,還沒(méi)有用于完整的生產(chǎn)環(huán)境,或者,也許我錯(cuò)了?你對(duì)C++ 17的使用有什么經(jīng)驗(yàn)?我們可以看到,今年C++17標(biāo)準(zhǔn)的采用率在穩(wěn)步增長(zhǎng)。你對(duì)C++20的使用有什么經(jīng)驗(yàn)?去年我沒(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)有特殊的排序):- C++20 新特性和標(biāo)準(zhǔn)化
- C++博客 - 幫助更容易學(xué)習(xí)和掌握最新的語(yǔ)言
- C++ 書(shū)籍和課程 – 提升水平,更多的選擇機(jī)會(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)目中使用它的想法。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/)還有一項(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/)本年度我想強(qiáng)調(diào)的就以下三件事情:- 開(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)。