0
A
回答
1
你可以使用序號標籤:
template <typename T, int Tag> class X { ... };
typedef X<int, 0> type_0;
typedef X<int, 1> type_1;
或者,你可以使用繼承:
class type_0 : X<int> { ... };
class type_1 : X<int> { ... };
但是從一些困難這個受苦,如需要轉發構造函數的參數和危害與混合賦值語義和繼承。
+0
謝謝,看我對lijie的回答 – 2010-11-25 09:23:18
+0
@There ...:那麼繼承解決方案可能是你唯一的選擇。 – 2010-11-25 09:25:16
1
您需要參數化另一件事情(例如整數?)。例如,將X
定義爲template <typename T, int N> struct X {...};
並使用X<int,0> type_0; X<int,1> type_1
。如果模板參數匹配,它們是相同的類型。
1
做一個類,從X模板類繼承,像這樣:
template <int I>
class type_i : public X<int>
{
};
typedef type_i<0> type_0;
typedef type_i<1> type_1;
7
template < typename T, int I > class X;
X<int, __LINE__ > x0;
X<int, __LINE__ > x1;
X0和X1將是不同的類型,將任何其他聲明是這樣,如果他們不是在同一行在文件中。
相關問題
- 1. 兩種不同類型的
- 2. 聲明相同類型的Java
- 3. 聲明具有相同名稱但不同類型的屬性
- 4. 提供兩種不同的相同類型的實例
- 5. 具有相同ID的Android兩種不同的SharedPreference類型
- 6. 兩種不同類型
- 7. 我可以使用相同的屬性查詢兩種不同的類型嗎?
- 8. 不同數組聲明的類型
- 9. 聲明變量名稱相同但類型不同
- 10. 我可以同時爲兩個屬性聲明相同的值:
- 11. 檢查兩種類型是否相同
- 12. 以相同的方法聲明兩次
- 13. 從兩種不同類型的
- 14. 兩種不同類型的jQuery
- 15. set_intersection兩種不同類型的集合
- 16. 有兩種不同類型的
- 17. 合併兩種不同類型的RDD
- 18. ASP.NET web api使用相同聲明的兩種方法路由
- 19. 兩種不同MFMailComposeViewController相同的看法
- 20. 相同類型的相同類型的兩個實例
- 21. 如何獲得兩種不同類型的兩種不同的二叉樹?
- 22. 類和變量聲明(相同類的類型)
- 23. 解釋認爲,同一類的兩個聲明都是不同
- 24. AutoMapper - 不能用相同的方法映射兩種類型
- 25. 我想用不同的值顯示相同的列兩次mysql
- 26. 是否有可能將兩個通配符類型聲明爲相同類型?
- 27. 科特林如果你想如何聲明與相同的數據類型
- 28. 爲什麼F#有兩種類型的顯式類型聲明?
- 29. 單強類型的不同類型的兩個相似的類
- 30. 單行中的相同數據類型的變量聲明
您可以...使用不同的類型?或者,我在這裏錯過了什麼? – 2010-11-25 09:16:47
你的意思是`typedef X type_0;`? –
kennytm
2010-11-25 09:17:14
@Mike和Kenny沒有人,我希望這個類模板(X)以某種方式聲明每個具有相同參數的實例創建新類型。 – 2010-11-25 09:20:23