Ich benutze die boost lexical_cast Bibliothek für das Parsen von Textdaten in numerische Werte ziemlich oft. In einigen Situationen muss ich jedoch nur prüfen, ob die Werte numerisch sind; ich brauche oder verwende die Konvertierung eigentlich nicht.
Also, ich war über das Schreiben einer einfachen Funktion zu testen, ob eine Zeichenfolge ein Doppel ist denken:
template<typename T>
bool is_double(const T& s)
{
try
{
boost::lexical_cast<double>(s);
return true;
}
catch (...)
{
return false;
}
}
Meine Frage ist, gibt es alle optimierenden Compiler, die die lexical_cast hier weglassen würde, da ich nie tatsächlich den Wert verwenden?
Gibt es eine bessere Technik, um die lexical_cast-Bibliothek zu verwenden, um die Eingabeprüfung durchzuführen?