軟體特攻隊|GCC10釋出,GCC 11將支援C++20協程功能最佳化利器

軟體特攻隊|GCC10釋出,GCC 11將支援C++20協程功能最佳化利器

A coroutine is a function that can suspend execution to be resumed later。

協程是能暫停執行以在之後恢復的函式。

如上所述這是官網對協程的定義,C++20標準在今年年初確定了技術規範後,將於近期正式釋出,而協程作為C++20的主要功能之一,前不久剛釋出的GCC 10 編譯器最新版本已經對C++20的該功能進行了初始支援,但目前除非顯式的開啟該選項,否則並不會啟用此功能。

目前當GCC10處於C++20模式(std=c++20)中執行時,預設情況下是會啟用C++的協程功能。而在明年將要釋出的GCC11編譯器將具有協程功能,當那時候,GNU編譯器集合中對於C++20剩餘部分功能的支援也將會被解決。

C++20的協程(Coroutines)功能允許某個函式在暫停執行之後再恢復,這個功能與modules, spaceship operator,concepts 和記憶體模型改進等一起共同構成 C++20 的主要特性。

目前在C++標準的狀態頁面上,面向GCC的C++20功能仍處於開發階段,不過GCC10已結具備了C++20的大部分內容。可想而知,當GCC11釋出後,剩餘的其他專案很有可能會被解決,甚至包括為std=c++20 啟用協程的更改。

頂部