根據 Herb Sutter 的博客 Trip report: Winter ISO C++ standards meeting (Kona),包括 Modules 和 Coroutines 等功能特性都已加入。想問下正常情況下,主流編譯器的支持會在什麼時候完成?在 C++ 相關的程序編寫上又會有什麼變化?


從這幾年的標準化過程來看,現在基本上是先有實現,後有標準。所以基本上新標準都可以在主流編譯器,最少是beta分支上找到實現。module這個特性,clang和vc都分別實現過兩個版本了。

如果主流編譯器是指ms vc, gnu gcc, llvm clang的話,那麼2019年基本上已經支持了。參考這個

mutouyun/cncppcon2018-cppmodules

對寫C++寫程序沒有什麼影響,module主要還是一個工程化特性,頭文件中的信息現在分成導出的部分和不導出的部分,可以有效減少實現細節影響的範圍,帶來一個非常有用的特性 -- 重新編譯的速度變快了。

簡單的說,C++的module的當前實現,可以看成一個加強版本,應用於所有文件的預編譯頭文件過程。考慮到編譯系統參數對編譯結果的影響太大,不太可能有二進位發布版本的模塊(包括標準模塊)。不支持宏大約也是這個原因。

在大範圍使用constexpr和enum class之後,使用宏的範圍也變小了。不過,還是需要宏。


Make C++ GREAT AGAIN!


Coroutines在clang裡面早就能用了,期待modules,每次編譯幾個小時有點蛋疼。


modules要是支持宏我就把gayui重新組織一遍。


所以到 2025 年能用上 C++20 嗎?


路上的迪麗是不是有病,不懂就不懂,規則這東西英文手冊寫的很清楚。懷疑五道口職業技術學院的學弱,就喜歡在這種問題上找存在感?

== 正文 ==

其最期待的還是基於future的方案和底層網路庫深度整合。因為croutine,如果要使用,需要很地方都是按非同步中斷去寫,比較期待,grpc cpp 等庫完全支持,併兼容各種內核事件。

我現在正在使用ucontex為GRPC,見issue討論,非同步服務提供協程(利用我在python上開發的攜程技術,並提供了對常見事件類似future對象的封裝:epoll事件,基於async socket的https 請求,等等)。 希望ucontex進入標準模型。


歡欣鼓舞啊,C++的編譯工具鏈早應該改進了


和問題本身不相關,所以匿了←_←

在問題提供的鏈接的文章裏我看到

This and the previous meeting were the biggest ISO C++ meetings in our 29-year history, and this time we had a new record of 13 voting national bodies represented in person: Bulgaria, Canada, Czech Republic, Finland, France, Germany, Netherlands, Poland, Russia, Spain, Switzerland, United Kingdom, and United States.

於是什麼時候我們國家也能派出國家代表,參與C++標準的制訂呢→_→


等等……我還沒看懂T是什麼意思……

Edit:等等……大家都沒有幽默感嗎……


推薦閱讀:
相關文章