五月天青色头像情侣网名,国产亚洲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的評論 (共 條)

分享到微博請遵守國家法律
曲沃县| 平湖市| 南澳县| 江华| 射阳县| 深州市| 五寨县| 海安县| 惠水县| 和龙市| 香港| 新丰县| 三都| 五家渠市| 兖州市| 彭阳县| 府谷县| 陈巴尔虎旗| 武邑县| 城口县| 英超| 石渠县| 包头市| 凤阳县| 法库县| 和田县| 铁岭县| 九江市| 绥中县| 镇康县| 苏州市| 资源县| 淮阳县| 肇州县| 称多县| 济阳县| 陕西省| 荆州市| 安岳县| 江口县| 仁化县|