Wenn ich die Compiler-Version von gcc 4.6 zu gcc 4.8 umschalten bekomme ich den folgenden Fehler Fehler: Aufruf von überladenen 'Isnan (double)' ist mehrdeutig.Portierung Isnan zu C++ 11
Dies liegt daran, dass in C++ 11 gibt differend Funktionsdeklarationen sind: C: int isnan (double) C++ 11: bool isnan (double)
von cpluplus:
- In C wird dies als Makro implementiert, das einen int-Wert zurückgibt. Die Art von x soll float, double oder long double sein.
- In C++ ist es mit Funktionsüberladungen für jeden Gleitkommatyp implementiert, die jeweils einen Bool-Wert zurückgeben.
Wie kann ich das beheben?
Wie Sie es nennend? Zeigen Sie uns den Kontext. –
Juanchoupanza Vorschlag arbeitete. Ich hatte zuvor deklariert, namespace std zu verwenden, aber ich musste es trotzdem dem isnan-Aufruf voranstellen, weil es eine Quelle der Mehrdeutigkeit war. –
Genau das ist falsch bei 'namespace std überall verwenden '. –