J'essaye d'écrire une fonction de modèle qui extraira la valeur du type de donnée donné de la chaîne donnée. Je suis venu avec quelque chose comme ceci:Comment utiliser std :: wstring avec std :: istringstream?
template<class T>
static T getValue(const CString& val_in)
{
std::wstring value = val_in;
std::istringstream iss;
iss.str(value);
T val = T();
iss>>val;
return val;
}
Mais cela donne l'erreur suivante pour l'instruction iss.str(value)
.
erreur C2664: 'vide std :: basic_istringstream < _Elem, _Traits, _Alloc> :: str (const std :: basic_string < _Elem, _Traits, _Ax> &)': ne peut pas convertir le paramètre 1 de 'std :: wstring' à 'const std :: basic_string < _Elem, _Traits, _Ax> &'
donc, fondamentalement, est std::istringstream
seulementacceptent dix . Je pensais qu'il pourrait y avoir un std::wistringstream
mais il ne semble pas en avoir un disponible. Des indices comment puis-je le faire?
Qu'est-ce qui vous fait penser qu'il n'y a pas un 'wistringstream' disponible? Voir 27.7 [lib.string.streams]. –
@Charles, j'ai eu une erreur de compilation (sur VC9) quand j'ai essayé wistringstream, laissez-moi essayer encore. – Naveen
Oups.compilation maintenant, pas sûr de ce que j'ai changé autre que celui-ci .. – Naveen