Assumendo che abbia una funzione che manipola le stringhe e che gestisca perfettamente tutti i tipi di caratteri.define alias per specifiche istanze del metodo template
template<typename CharT>
std::basic_string<CharT> foo_basic_string()
{
return std::basic_string<CharT, char_traits<CharT>, allocator<CharT> >();
}
voglio funzioni foo_string
e foo_wstring
essere una versione di foo_basic_string
e restituiscono un std::string
e std::wstring
, rispettivamente.
Un modo è
std::string foo_string()
{
return foo_basic_string<char>();
}
std::wstring foo_wstring()
{
return foo_basic_string<wchar_t>();
}
mi chiedevo se esiste un modo per dichiarare foo_string
come essere effettivamente l'istanzafoo_basic_string<char>
.
Il secondo e terzo argomento del modello che si passa a 'basic_string' è superfluo in quanto sono gli argomenti predefiniti. – Columbo