Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verhaltensänderung: 'function' wird aufgerufen, in früheren Versionen wurde jedoch ein Memberoperator aufgerufen.
Bemerkungen
In Versionen von Visual C++ vor Visual Studio 2002 wurde ein Element aufgerufen, dieses Verhalten wurde jedoch geändert, und der Compiler findet jetzt die beste Übereinstimmung im Namespacebereich.
Wenn ein Memberoperator gefunden wurde, würde der Compiler zuvor keine Namespacebereichsoperatoren in Betracht ziehen. Wenn es eine bessere Übereinstimmung im Namespacebereich gibt, ruft der aktuelle Compiler sie ordnungsgemäß auf, während frühere Compiler dies nicht in Betracht ziehen würden.
Diese Warnung sollte deaktiviert werden, nachdem Sie den Code erfolgreich zu der aktuellen Version portieren. Der Compiler kann falsch positive Ergebnisse liefern und diese Warnung für Code generieren, bei dem keine Verhaltensänderung vorliegt.
Diese Warnung ist standardmäßig deaktiviert. Weitere Informationen finden Sie unter Compiler Warnings That Are Off by Default.
Example
Im folgenden Beispiel wird C4342 generiert:
// C4342.cpp
// compile with: /EHsc /W1
#include <fstream>
#pragma warning(default: 4342)
using namespace std;
struct X : public ofstream {
X();
};
X::X() {
open( "ofs_bug_ev.txt." );
if ( is_open() ) {
*this << "Text" << "<-should be text" << endl; // C4342
*this << ' ' << "<-should be space symbol" << endl; // C4342
}
}
int main() {
X b;
b << "Text" << "<-should be text" << endl;
b << ' ' << "<-should be space symbol" << endl;
}