所以,這個問題之前已經被問過了,但我想要一個關於標題中的一些關鍵詞的問題。使用函數地址的模板類的唯一數字ID
問題很簡單:我如何擁有一個模板化類,以便模板的每個實例(而不是每個類的實例)都有一個唯一的數字標識符?
也就是說,一個方法來區分:
foo<int> f1;
foo<char> f2;
classID(f1) != classID(f2);
但是,
foo<int> f3;
foo<int> f4;
classID(f3) == classID(f4);
相關的:
in C++, how to use a singleton to ensure that each class has a unique integral ID?
Assigning Unique Numerical Identifiers to Instances of a Templated Class
我選擇我自己的答案,因爲它是)比較簡單和b)靜態編譯時間常數, 據我所知。 – Narfanator 2010-02-11 05:29:43
我使用VS 2015測試了它,它在編譯調試時工作,但在編譯Release時不起作用。編譯Release時,優化器將所有classID()函數合併爲一個。所以foo.classID == foo2.classID == foo3.classID。 – adigostin 2016-03-17 08:43:55
該死的。必須找到一個新的技巧,現在... – Narfanator 2016-03-19 18:23:22