【发布时间】:2010-06-25 12:41:13
【问题描述】:
我有两个 dll 都声明了一个模板类型,我们称之为 A. 如果 A 的声明足够复杂,就会发生 在两个不同的函数中调用时 typeid(A).name() 的结果是不同的 dll。
示例:
DLL1:
struct MyType: public A< TEMPLATE_LIST_OF_A >{}
void f(){
std::string name1 = typeid(A).name();
}
DLL2:
struct MyType: public A< TEMPLATE_LIST_OF_A >{}
void f(){
std::string name2 = typeid(A).name();
}
例如 name1 可能类似于:“???MyType??? etc” 而 name2 可能是“???A??TEMPLATE_LIST_OF_A 等”。
这对我来说实际上很有意义,但是有没有办法,只要 使用的名称与保证 name1==name2 的名称相同?
谢谢, 抢
【问题讨论】: