Hallo
ich nutze VS2013 zum üben.
Nunja ab und zu schein es kleinere Abweichungen zu geben. Das ist jedoch bis jetzt nicht gravirender gewesen. Zumal der Compiler mir ein Erstaz angeboten hat.
Nun hatte ich aber folgendes Problem im Listing 8.9
Dort gibt es eine if-Anweisung
|
C-/C++-Quelltext
|
1
|
if (Input == NULL) (...)
|
Hier wirft mir der Compiler folgenden Fehler aus:
|
Quellcode
|
1
2
3
4
|
Fehler 1 error C2678: Binärer Operator '==': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'std::ifstream' akzeptiert (oder keine geeignete Konvertierung möglich) c:\users\rok\documents\visual studio 2013\projects\listing8_9\listing8_9\start.cpp 20 1 Listing8_9
2 IntelliSense: Kein "=="-Operator stimmt mit diesen Operanden überein.
Operandentypen sind: std::ifstream == int c:\Users\Rok\Documents\Visual Studio 2013\Projects\Listing8_9\Listing8_9\Start.cpp 20 12 Listing8_9
|
Ich habe also nun folgendes probiert:
|
C-/C++-Quelltext
|
1
|
if (!Input) (...)
|
Die Fehlermeldung ist weg und das Programm funktioniert wie es soll. Jedoch frage ich mich ob diese Schreibweise nun einfach aktuell ist und die andere abgeschafft wurde oder ob ich etwas falsch gemacht habe? Bzw. ist die Schreibweise mit !Input gleichbedeutend oder kann das zu Fehlern führen?
Ich habe diese Schreibweise genutzt da ich sie bereits aus einigen Script-Sprachen kannte.
Vielen Dank schon einmal.
Gruß
Rok