16
A
回答
21
你不能傳遞這樣的類型,因爲類型不是對象。它們在運行時不存在。相反,你想有一個模板,它允許你在編譯時實例化不同類型的功能:
template <typename T>
void foo() {
cout << sizeof(T);
}
你可以調用這個函數,例如,foo<int>()
。它將用int
替換T
的實例化函數版本。看起來function templates。
8
正如約瑟夫曼斯菲爾德指出的,一個函數模板將做你想做的。在某些情況下,它可能是有意義的一個參數添加到功能,所以您不必顯式地指定模板參數:
template <typename T>
void foo(T) {
cout << sizeof(T)
}
這允許您調用函數爲foo(x)
,其中x
是一個變量T型。無參數版本將不得不被稱爲foo<T>()
。
相關問題
- 1. 轉換爲變量類型
- 2. 將JavaScript變量轉換爲C#變量
- 3. 將VB轉換爲C#類型轉換
- 4. 將分類變量轉換爲數字
- 5. 將C數據類型轉換爲Python
- 6. 無法將類型變量(Null)轉換爲類型(OleStr)
- 7. 如何轉換爲變量類型 - 模擬C++中的類型變量
- 8. 將數組變量轉換爲另一個函數變量
- 9. C#,將字符串變量轉換爲類變量
- 10. 如何Session變量轉換爲整數類型在C#
- 11. 將函數轉換爲無點樣式改變其類型
- 12. 如何將byte []數組轉換爲字節類型變量?
- 13. Fortran變量類型轉換
- 14. Java:Minecraft:變量類型轉換
- 15. 使用類型變量轉換爲Enum
- 16. 將C函數轉換爲Lua函數
- 17. 將C函數轉換爲Python函數
- 18. C# - 將變體類型的子類轉換爲父類
- 19. 將函數從類型T轉換爲類型U>:T
- 20. C#類型轉換爲泛型參數
- 21. 如何將類型轉換爲PHP中的類變量
- 22. 將分類變量轉換爲事件計數變量R
- 23. DynamoDBMapper轉換變量數據類型
- 24. 爲函數類型轉換參數
- 25. c#將字符串轉換爲變量
- 26. 將C變量轉換爲JSON格式
- 27. javascript - 將函數轉換成變量
- 28. 將javascript函數轉換成變量
- 29. 將動態變量轉換爲類
- 30. 將子類轉換爲父變量as3
只有在你不關心編譯速度的情況下才能做到這一點。 –
@RayGarner你是什麼意思?不是兩個模板實例化只會像兩個類一樣昂貴嗎?我的理解是模板增加了編譯時間,因爲隱藏的類,而不是因爲模板在某種程度上昂貴。 – TankorSmash
@TankorSmash只要它足夠小的項目和規模,你不需要爲它擔心就可以實現正確的規模。然而,每一個小項目都會變成一個大項目,以防萬一FNG被讀取,只是希望他們在編譯時意識到這種交易。 –