【发布时间】:2013-10-26 15:11:23
【问题描述】:
如果我有一个类型为 T 的泛型类,并且我有一个返回 T 的函数。如果 typeid(T) == typedef(string),我希望我的函数返回一个特定的字符串?
template<class T>
class Class1
{
public:
Class1();
~Class1();
T func();
};
template <class T>
T Class1<T>::func()
{
string d = "T = string";
if (typeid(string) == typeid(T))
return (T)d; <-- here I got the problem
}
【问题讨论】:
-
你到底想做什么?您如何使用此代码?什么是“问题”/错误?
-
显式专业化。
-
没有“泛型类”这样的东西。只有“类模板”。这种误解似乎是许多初学者困惑的根源。
-
是的,有这样的事情,但是in C#
-
你能告诉我短语“通用类”和“类模板”有什么区别吗?
标签: c++ class templates generics