所以,这个问题之前已经被问过了,但我想要一个关于标题中的一些关键词的问题。使用函数地址的模板类的唯一数字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