您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“C++的Rust組合與集成知識分析”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
#rust
組合與繼承 上
組合與繼承 中
C++中的多態(tài)面臨的問題
在使用靜態(tài)派發(fā)時,由于完全依賴重載,當(dāng)編寫對應(yīng)的代碼時,很難保證你的類完整實(shí)現(xiàn)了調(diào)用代碼的要求,再加上了深度模版的使用,導(dǎo)致出錯信息非常難以閱讀;為了解決這個問題C++標(biāo)準(zhǔn)委員會在C++ 20標(biāo)準(zhǔn)中加入了concepts的概念,它可以顯式的提出約束,使用的例子可以參見上一篇文章 https://zhuanlan.zhihu.com/p/75755125,而更多的信息,大家可以參見cppreference[2];
在使用動態(tài)派發(fā)時,由于vptr存在,它會破壞對象本身的內(nèi)存結(jié)構(gòu),當(dāng)你的對象還需要與其他庫(特別是C語言編寫的庫)進(jìn)行交互的時候,內(nèi)存結(jié)構(gòu)就會稱為一個顯著的問題;
由于C++是一個非常成熟的語言,而concept又是在下一個標(biāo)準(zhǔn)中才會加入進(jìn)來的概念,所以對于靜態(tài)派發(fā)和動態(tài)派發(fā)的約束是完全不一樣的語法,而且對于同樣的約束,如果我們需要同時使用靜態(tài)和動態(tài)派發(fā)的話,必須寫兩遍(一遍虛基類,一遍concepts)。
對于上述提到的3個問題,在Rust中有一個統(tǒng)一的解決方案,那就是trait系統(tǒng), 更多內(nèi)容請看正文。
Read More
#crate
MimbleWimble是一個區(qū)塊鏈隱私保護(hù)的格式和協(xié)議,是一種可以防止區(qū)塊鏈泄露個人信息的技術(shù),名字來源于《哈利波特》。grin是MimbleWimble協(xié)議的最小實(shí)現(xiàn)。
Read More
#crate
amethyst 是一種數(shù)據(jù)驅(qū)動和面向數(shù)據(jù)的游戲引擎,旨在盡可能快速且可配置,文檔寫的很詳細(xì),下面是由它實(shí)現(xiàn)的兩個項(xiàng)目:
Evoli - 3D, ecosystem simulator
Space Menace - 2D, action platformer
Read More
#crate
tracing 是一個框架,用于檢測Rust程序以收集基于事件的結(jié)構(gòu)化診斷信息。跟蹤由Tokio項(xiàng)目維護(hù),但不需要使用tokio運(yùn)行時。instrument 屬性提供了一種向函數(shù)添加跟蹤跨度的簡便方法。使用 instrument 注釋的函數(shù)將在每次調(diào)用函數(shù)時創(chuàng)建并輸入具有該函數(shù)名稱的span,并使用fmt::Debug將該函數(shù)的參數(shù)記錄為字段。
“C++的Rust組合與集成知識分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。