0
char或wchar_t的我想复制一个数组(是char *或wchar_t的*),我有以下功能:检查类型是否是在编译时
template<typename T>
T* doStuff(const T* str)
{
T* newArr;
if(typeid(str).name() == typeid(const wchar_t*).name())
{
newArr = wcsdup(str);
}
else if (typeid(str).name() == typeid(const char*).name())
{
newArr = strdup(str);
}
// ...do some more
}
的问题是,当我打电话该函数首先与char *参数,然后与wchar_t参数我得到一个编译时错误(错误:没有匹配的函数调用'wcsdup'和错误:没有匹配函数调用'strdup')。
有没有办法在编译时检查我的模板是char *还是wchar_t *?
类型的伟大工程的感谢! – Michael 2014-09-27 14:50:27