Dizeyi bir sayıya dönüştürmeye çalışıyorum.Şablonlarla hata derleme - çağrı için eşleme işlevi yok
error: no matching function for call to ‘stringToNumber(std::string&)’
Mayıs kimse böyle hata alıyorum ve nasıl bunu düzeltmek için am neden söyle bana:
#include <iostream>
#include <string>
template <typename T>
T stringToNumber(const std::string &s)
{
std::stringstream ss(s);
T result;
return ss >> result ? result : 0;
}
int main()
{
std::string a = "254";
int b = stringToNumber(a);
std::cout << b*2 << std::endl;
}
sorun aşağıdaki hatayı alıyorum olmasıdır: Bunun için, aşağıdaki yol buldum?
Önceden teşekkür ederiz. Şablon türü T
açıkça bunu tanımlamanız gerekir (bu durumda std::string
olarak) parametrelerin herhangi çıkarılabilir edilemez çünkü
t 'çıkaramayız 'gerçeği gibi, hata daha olmamalıdır. – chris
Ayrıca std :: stringstream işlevini de kapsamınıza almak için en üstte 'numaralı #include gerekebilir. –
Evet, bir kez düzelttikten sonra farkettim :) – XNor