Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
beteendeförändring: "funktion" anropas, men en medlemsoperator anropades i tidigare versioner
Anmärkningar
I versioner av Visual C++ före Visual Studio 2002 anropades en medlem, men det här beteendet har ändrats och kompilatorn hittar nu den bästa matchningen i namnområdesomfånget.
Om en medlemsoperator hittades skulle kompilatorn tidigare inte överväga några namnområdesomfångsoperatorer. Om det finns en bättre matchning på namnområdesnivån, anropar den aktuella kompilatorn korrekt den, medan tidigare kompilatorer inte skulle överväga den.
Den här varningen bör inaktiveras när du har porterat din kod till den aktuella versionen. Kompilatorn kan ge falska positiva identifieringar och generera den här varningen för kod där det inte sker någon beteendeförändring.
Den här varningen är inaktiverad som standard. Mer information finns i Kompilatorvarningar som är inaktiverade som standard.
Example
I följande exempel genereras C4342:
// 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;
}