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