中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

d的102版更改-創新互聯

原文

創新互聯公司-成都網站建設公司,專注成都做網站、成都網站建設、網站營銷推廣,申請域名,網絡空間,成都網站托管有關企業網站制作方案、改版、費用等問題,請聯系創新互聯公司。更改編譯器

1,已棄用遺漏沖突的extern (D) @system函數定義
同一模塊中多個函數的定義,在DMD 2.095.0后已算錯誤.
但是,盡管有同樣混雜,兩個實現顯式的和推導@系統屬性有區別時,編譯器不發出錯誤.

void foo() {}
void foo() @system {} //無錯誤

現在已修復.如果有沖突@系統實現,現在發出棄用警告.
DMD2.112開始,與其他模塊內函數類型沖突一樣,產生多個定義錯誤.
2,在重載集棄用調用__traits(getAttributes)
在此版本之前,__traits(getAttributes)可在單個函數和重載集上同時調用.但是后者,編譯器為第一個詞法定義的函數收集.此行為易錯.考慮:

module test;
@("gigi")
void fun() {}
@("mimi")
void fun(int) {}
void main()
{static foreach(attr; __traits(getAttributes, fun))
    pragma(msg, attr);

盡管未指示實際查詢重載,上面代碼打印"gigi".總是選擇第一個重載.
從本版開始,棄用__traits(getAttributes)的該用法.如果要處理指定重載,可結合使用__traits(getOverloads)__traits(getAttributes):

@("gigi")
void fun() {}
@("mimi")
void fun(int) {}
void main()
{static foreach (t; __traits(getOverloads, test, "fun"))
static foreach(attr; __traits(getAttributes, t))
pragma(msg, attr);
//打印
gigi
mimi

3,棄用無效非空增量語句
該最后for語句不應產生值.現在檢測并顯示棄用消息.以下for語句都會觸發棄用:

// 無副作用的計算"j"
int j;
for (;; j) {...}
// 不必要的解引用
for (ubyte* sp;; *sp++) {...}
// 第一個句子是塊語句
// 最后句子是函數字面,而不是塊語句
for({j = 2; int d = 3;} j + d< 7; {j++; d++;}) {...}

注意:調用返回的函數,即使函數閑著,也不棄用.這是模板代碼.
4,現在可在棧上分配賦值給數組變量的數組字面.
以前,它們總是與垃集一起分配,因此在@nogc中或更好C代碼不可用.導致頻繁使用以下方法:

void main() @nogc
{int[3] buffer = [10, 20, 30];
    int[] arr = buffer[];
}

現在可用一行來寫:

void main() @nogc
{scope int[] arr = [10, 20, 30];
}

具有以下限制:
1,必須顯式注解變量域,而不僅是推導
2,必須傳遞-preview=dip1000,以避免在舊代碼中引入內存破壞.
3,注意,在@系統@信任代碼中,編譯器不會驗證變量是否逃逸.
4,數組字面必須初化變量.隨后數組字面賦值仍然使用GC.
5,數組元素不能有析構器
其中一些限制可能會在未來取消.

5,靜斷現在支持多個消息參數
條件計算結果為時,后續式轉換然后連接.生成的串診斷錯誤一起打印出來.

enum e = 3;
static assert(false, "a = ", e);

打印:

`file.d(2)`:錯誤:靜斷:`a=3`

6,添加-preview=systemVariables
自接受DIP1035系統變量以來,@safe代碼無法再訪問標記為@system的變量.為了避免代碼中斷,編譯器從發出棄用警告開始.預覽開關會轉換為錯誤,且在未來版本默認啟用.

@system int* p;
struct S
{@system int i;
}
void main() @safe
{int x = *p; // 有開關,算失敗,否則,發出棄用
    S s;
    s.i = 0; // 同上.
}

注意,目前僅限顯式標記為@system的變量,尚未實現基于變量初化器的推導@system.

運行時更改

生成Throwable.TraceInfo,默認值現在是@nogc的.工作方式:
運行時現在有2個跟蹤相關函數,一個分配,另一個釋放跟蹤信息.兩者都通過相同的Runtime.traceHandler函數來設置的.設置釋放函數的第二個參數是可選的(因此不會影響現有代碼).
Throwable時,如果尚未設置跟蹤信息,運行時用指定函數來分配跟蹤信息.如果釋放函數為非空,則復制函數指針到可拋(Throwable)對象中,并復制到infoDeallocator新成員中.
析構可拋(Throwable)時,如果設置了infoDeallocator成員,則會在info成員上調用它.
默認分配器和釋放器現在使用Cmalloc并自由分配和釋放TraceInfo.現在除了TraceInfo對象自身的分配,幾乎都已是nogc了.
好處:
現在可在GC收集例程運行時生成棧跟蹤.
InvalidMemoryOperationError現在有棧跟蹤.
鮮為人知的是,即使在@nogc函數中,拋Throwable也是在使用GC,但現在(默認)不再是這樣.
已修復一些GC掛起.
可能缺點是,在最終析構Throwable時釋放TraceInfo,從而導致潛在指針懸掛.如果從Throwable外復制info,請確保不要讓它超出可拋(Throwable)的生命期,或確保設置infoDeallocator成員為null.

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

本文題目:d的102版更改-創新互聯
鏈接分享:http://www.2m8n56k.cn/article38/dghesp.html

成都網站建設公司_創新互聯,為您提供動態網站網站制作品牌網站建設用戶體驗自適應網站網站改版

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都seo排名網站優化
主站蜘蛛池模板: 波多野结衣一区二区三区88 | 一级片网站在线观看 | 青青青免费手机版视频在线观看 | 女人成午夜大片7777在线 | 国产成人三级 | 国产成人精品亚洲2020 | 欧美三级一级片 | 亚洲久久天堂 | 一级片免费在线 | 欧美在线播放视频 | 成人小视频在线观看免费 | 美女被免费网站在线视频软件 | 亚洲成色在线 | 欧美日韩精品一区二区三区 | 亚洲一区二区中文字幕 | 亚洲毛片免费在线观看 | 特级a做爰全过程片 | 老司机成人免费精品视频 | 亚洲乱强| 国产在线91精品天天更新 | 久久久久久久久久毛片精品美女 | 欧美一级毛片欧美大尺度一级毛片 | 欧美综合自拍亚洲综合 | 欧美一区二区精品 | 蜜桃日本一道无卡不码高清 | 欧美一级视频在线 | 亚洲男人天堂视频 | 日本一本色道 | 国产亚洲一区在线 | 黑人特黄aa毛片 | 91玖玖| 久久久国产精品免费看 | 波多野结衣一级片 | 成 人色 网 站 欧美大片在线观看 | 亚洲一级毛片视频 | 国产精品一一在线观看 | 国产精品分类视频分类一区 | 一级片视频免费观看 | 欧美精品久久久亚洲 | 亚洲波多野结衣日韩在线 | 久久网站免费观看 |