熱搜:win11繞過(guò)硬件限制安裝 一鍵重裝Win10系統(tǒng) 最干凈的u盤(pán)啟動(dòng)盤(pán) 真正純凈版的win7系統(tǒng)
編輯:jiayuan 2020-01-29 11:38:58 來(lái)源于:IT之家
協(xié)程(Coroutines)是C++20的主要功能之一,它允許某個(gè)函數(shù)在暫停執(zhí)行之后再恢復(fù)。而從新近曝光的GCC項(xiàng)目的郵件列表記錄來(lái)看,對(duì)C++20協(xié)程的實(shí)驗(yàn)性支持目前已經(jīng)被合并到GCC 10編譯器中!下面讓我們來(lái)了解一下。
據(jù)悉,官方對(duì)協(xié)程的定義是:
A coroutine is a function that can suspend execution to be resumed later.
協(xié)程是能暫停執(zhí)行以在之后恢復(fù)的函數(shù)。
若函數(shù)的定義實(shí)現(xiàn)了以下任何內(nèi)容之一,則它是協(xié)程:
• 使用 co_await 運(yùn)算符暫停執(zhí)行,直至恢復(fù)
• 使用關(guān)鍵詞 co_yield 暫停執(zhí)行并返回一個(gè)值
使用關(guān)鍵詞 co_return 完成執(zhí)行并返回一個(gè)值
據(jù)了解,對(duì)協(xié)程支持的開(kāi)發(fā)工作已進(jìn)行了數(shù)月,現(xiàn)在作為GCC 10最新增添的功能,尚屬實(shí)驗(yàn)性的實(shí)現(xiàn)。
由于此功能處于早期狀態(tài)以及在GCC 10開(kāi)發(fā)周期的后期階段才被添加進(jìn)來(lái),C++20協(xié)程在 -std=c++2a 中也不會(huì)公開(kāi),而且現(xiàn)在明確要求設(shè)置 -fcoroutines 標(biāo)志方可使用。
另外,根據(jù)GCC對(duì) C++標(biāo)準(zhǔn)的支持情況頁(yè)面,GCC還會(huì)支持C++的原子操作(atomic compare-and-exchange),完成即時(shí)函數(shù)( immediate functions)的工作,獲得對(duì) C++ modules的支持以及其他功能。不過(guò)由于GCC 10已經(jīng)處于第四階段的開(kāi)發(fā)周期中,因此直到明年在 GCC 11上才可以在此編譯器中看到完整的、可投入生產(chǎn)環(huán)境使用的 C++20支持。
發(fā)表評(píng)論
共0條
評(píng)論就這些咯,讓大家也知道你的獨(dú)特見(jiàn)解
立即評(píng)論以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場(chǎng)