Wie NULL zurück, von einer Methode in eine Vorlage-Klasse

Habe ich eine Methode die wie folgt aussieht:

template <typename T>
T Test<T>::FindItem(T item)
{
    if(found)
        //return original value, no problem here
    else
        //I want to return NULL here, like:
        return NULL; 
}

Dieser schlägt fehl, in bestimmten Fällen zur Laufzeit, weil einige die Werte nicht umgewandelt werden kann, um die NULL in C++ z.B. std::string. Welchen Ansatz sollte ich verfolgen hier?

  • Seine eine compile-Zeit-Fehler. Kein run-time.
  • Laufzeit für std::string, std::string(const char*) aufgerufen werden
  • Ich benutze Visual Studio 2005 und VC-compiler und es ist nicht eine compile-Zeit-Fehler in der it. Kann nicht sagen, über gcc.
  • Oops..sorry, mein Fehler. Ja es stürzt in VS2008 auch.
  • Initialisieren eines std::string mit NULL ist nicht eine compile-Zeit-Fehler, aber ruft nicht definiertes Verhalten, wahrscheinlich in Ermangelung an Zeit ausführen.
InformationsquelleAutor Aamir | 2009-09-08
Schreibe einen Kommentar