C++14 進行中,來看目前的委員會草案吧~

| | 0 Comments| 10:01
Categories:

去年 10 月的時候,C 這個程式語言的新一代標準 C 11 終於定案了!雖然目前應該是還沒有哪個編譯器真的完整支援,不過其中像是 autolambda expression 等功能,Heresy 現在也都用得很高興了~

而現在,下一代的 C 標準,也就是目前命名為 C 14 的委員會草案(Committee Draft)在前一陣子也已經出來了~目前相關的資料應該還不多,不過網路上還是可以看到相關的資料。首先,可以參考 isocpp.org 上的《Trip Report: ISO C Spring 2013 Meeting》這篇文章,而該網站部落格也有很多相關文章;另外在 Meeting C 上,也有一系列的文章,在討論 C 14 的東西、並整理了相關的 paper。

基本上,東西滿多的,Heresy 也沒有全部看完。其中比較吸引 Heresy 注意的,包括了:

  • 平行計算

    • [N3530] Leveraging OpenMP infrastructure for language level parallelisation
      提供語法層級的 OpenMP 平行化,可以透過 parallelfor() 這樣的函式、來將迴圈平行化。

    • [N3554] A Parallel Algorithms Library
      平行化演算法函式庫! 以後像是 std::sort() 這類現成的演算法,可以直接平性化來處理了~看起來甚至可能會有 GPGPU 的版本,可以直接用呢!

  • 向量化

    • [N3561] Semantics of Vector Loops
      提供 simd_for() 這類的函式,來讓迴圈可以透過 SIMD(維基百科)指令集加速。

    • [N3571] Add SIMD Computation to the Library
      提供高階的 SIMD 計算函式庫。

  • [N3559] Generic Lambda Expression。
    基本上是 C 11 Lambda expression 的延伸,讓 lambda expression 可以使用 auto 來當作參數型別,藉此來增加 lambda expression 的使用彈性。

  • [N3505] 基於 Boost FileSystem v3 的 File System,可以用來做基本的檔案、目錄的管理。

  • [N3527] 基於 Boost::Optional 的新類別,可以用來處理「可能沒有值」的狀態,個人覺得用在 return 的時候還滿實用的。(有點類似回傳的不是值,而是指標)

  • 網路相關

    • [N3555] URI Library

    • [N3565] IP Address Design Constraints / [N3603] – A Three-Class IP Address proposal

  • [N3572] Unicode Support in the Standard Library

  • [N3611] A Rational Number Library for C

  • [N3612] Desiderata of a C 11 Database Interface

當然,其他還有相當多的功能,應該也都是滿實用的,不過 Heresy 就不全列了(有的 Heresy 也看不懂)。

而實際上,雖然不確定最後 C 14 定案的時候,會剩下那些東西,不過可以看到在目前 C 14 的草案裡面,針對平行化/向量化計算,都有做出改進;而同時,針對網路部分,看來也有打算增加相關功能了~接下來,就希望 C 標準語法、STL 的功能可以越來越完整吧~

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *