GCC 11 在 C++20 模式下將啟用協(xié)程支持
最近發(fā)布的 GCC 10 編譯器已對 C++20 的主要功能協(xié)程(Co-Routines)進行了初始支持,但是除非顯式地開啟該選項,否則并不會啟用此功能。
當 GCC 10 在 C++20 模式(std=c++20) 中運行時,默認情況下會啟用 C++ 協(xié)程。而將于明年發(fā)布的 GCC 11 在 C++20 推出時將具有協(xié)程功能,到那時,GNU 編譯器集合中支持 C++20 的剩余部分也應(yīng)該會被解決。
協(xié)程(Coroutines)是 C++20 的主要功能之一,它允許某個函數(shù)在暫停執(zhí)行之后再恢復(fù)。有關(guān) C++ 協(xié)程的示例語法和更多詳細信息請在 cppreference.com 上查看。可以看到,官方對協(xié)程的定義是:
A coroutine is a function that can suspend execution to be resumed later.
協(xié)程是能暫停執(zhí)行以在之后恢復(fù)的函數(shù)。
與 concepts, modules, spaceship operator 和內(nèi)存模型改進等一起共同構(gòu)成 C++20 的主要特性。
C++20 標準在今年年初確定了技術(shù)規(guī)范后,將于近期正式發(fā)布。GCC 10 已經(jīng)配備了 C++20 的大部分內(nèi)容,而對于 GCC 11 來說,其余的項目很有可能將會被解決,包括像上周看到的為 std=c++20 啟用協(xié)程的更改。
在 C++ 標準的狀態(tài)頁面上,仍有面向 GCC 的 C++20 功能處于開發(fā)階段。如果想知道 LLVM Clang 上的 C++20 狀態(tài),可查看此頁面。