2009-10-21 6 views
0

J'ai un problème très intéressant avec la compilation d'un petit programme sur un Mac (GCC 4.2). La fonction ci-dessous ne ferait que streamer des chars ou des chaînes dans le stringstream, mais rien d'autre (int, double, float, etc.) En fait, l'indicateur fail est défini si je tente de convertir par exemple un int en string. Toutefois, la suppression de l'indicateur du préprocesseur: _GLIBCXX_DEBUG=1, qui est définie par défaut en mode XCode pour le mode de débogage, donnera les résultats souhaités/comportement correct.std :: stringstream Comportement anormal de GCC

Voici la fonction simple dont je parle. value est une variable template de type T. Testée pour int, double, float (ne fonctionne pas), char et strings (working).

template < typename T > 
const std::string Attribute<T>::getValueAsString() const 
{ 
std::ostringstream stringValue; 
stringValue << value; 
return stringValue.str(); 
} 

Toutes les idées ce que je fais de mal, pourquoi cela ne fonctionne pas, ou ce que le drapeau de préprocesseur pour faire ce travail plus?

Merci!

Répondre

Questions connexes