我想提高我目前在C++模板中的知識,並且遇到了一個問題。是否可以編寫一個接受所有寬字符類型的模板函數,比如std :: wstring,wchar_t,wchar_t *等等?下面是說明我的意思的例子:所有寬字符類型的模板專業化
template <typename T> Function(T1 var)
{
// Do something with std::stringstream and the passed var;
}
上面的功能的問題是,它不與wchar_t的或std :: wstring的例如工作。您需要使用std :: wstringstream。我可以專注現在想:
template <> Function(wchar_t var)
{
// Do something with std::wstringstream and the passed var;
}
現在我會寫的每個寬字符串類型相同的功能,但有可能專門一次涵蓋所有寬字符串類型?
Thx提前!
當然,第一個函數適用於所有類型。問題是你不顯示代碼,我猜你有一些靜態類型在那裏聲明。向我們展示您想要的函數實現 –
您可能只需使用'std :: basic_stringstream'和一個依賴於模板參數的模板參數。 'std :: stringstream'實際上是'std :: basic_stringstream'和'std :: wstringstream'是'std :: basic_stringstream '。 –
chris
'wchar_t'和'wchar_t *'是兩個不同的東西。我不太清楚你的功能應該做什麼... –