五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Godot Source Code Note 4

2023-06-28 23:47 作者:中專人  | 我要投稿

模板參數(shù)展開

可變參數(shù)模板分為類型模板形參包與函數(shù)形參包。

先上一段Godot源碼:

可以看到,代碼中使用了一種初始化列表展開的方法,本文簡要介紹幾種類似方法。

C++11之前:

> 遞歸模板函數(shù)

此方法必須要定義一個遞歸終止函數(shù),很不簡潔。

遞歸函數(shù)調(diào)用容易引起棧溢出。

C++11:

> 初始化列表展開

這里借助了逗號表達式的特性,括號中用逗號分隔的表達式會以從左往右的順序執(zhí)行,最后返回最右邊表達式的結果。在(std::cout << args << std::endl, 0)...包展開中,逗號左邊的輸出語句先被執(zhí)行,然后逗號右邊的0返回作為數(shù)組的元素。因此,如果sizeof...(args)為3的話,那么temp數(shù)組為{0, 0, 0}。

上面展示的Godot源代碼即使用了此方法。

C++17:

> 折疊表達式

相當簡潔,但要掌握集中折疊規(guī)則。

容易出錯。

> constexpr if 編譯時條件判斷

constexpr if語句使得模板函數(shù)在編譯期就可以完成條件判斷,而不是運行時。

constexpr if語句起到了一個類似條件編譯的效果。

挖個坑,以后有機會可以談談constexpr。


部分參考《現(xiàn)代C++語言核心特性解析》《現(xiàn)代C++教程》

如侵刪。
歡迎評論指正。

Godot Source Code Note 4的評論 (共 條)

分享到微博請遵守國家法律
梧州市| 定陶县| 慈溪市| 常德市| 奉节县| 临颍县| 金乡县| 新河县| 铁力市| 乌鲁木齐县| 宜城市| 亳州市| 贵南县| 桂阳县| 调兵山市| 禄丰县| 晋江市| 泗水县| 北辰区| 桂东县| 吕梁市| 鹰潭市| 安多县| 称多县| 凯里市| 灵宝市| 嘉义市| 睢宁县| 南通市| 罗山县| 镇沅| 临城县| 曲沃县| 咸阳市| 安远县| 万盛区| 屯门区| 巴林左旗| 莱西市| 建始县| 板桥市|