Dizeleri yöneten ve tüm char türlerini mükemmel şekilde işleyen bir işlevim olduğunu varsayın.Belirli bir şablon yöntem örnekleri için diğer adları tanımlama
template<typename CharT>
std::basic_string<CharT> foo_basic_string()
{
return std::basic_string<CharT, char_traits<CharT>, allocator<CharT> >();
}
Ben fonksiyonları foo_string
ve foo_wstring
foo_basic_string
bir versiyonu olacak ve sırasıyla bir std::string
ve std::wstring
dönmek istiyorum. Aslında örneğifoo_basic_string<char>
olmak olarak foo_string
ilan etme yolu olup olmadığını merak ediyorum
std::string foo_string()
{
return foo_basic_string<char>();
}
std::wstring foo_wstring()
{
return foo_basic_string<wchar_t>();
}
Tek yoldur.
"basic_string" öğesine ilettiğiniz ikinci ve üçüncü şablon argümanı, varsayılan argümanlar olduğundan gereksizdir. – Columbo