Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
"operátor" mint bal oldali operandus
Megjegyzések
Egy függvény a megadott operátor bal oldalán volt. A hiba leggyakoribb oka az, hogy a fordító függvényként elemezte az operátor bal oldalán lévő azonosítót, amikor a fejlesztő változónak szánta. További információkért lásd a Wikipédia cikkét: Legzavaróbb elemzés.
Példák
Ez a példa egy függvénydeklarációt és egy könnyen összetéveszthető változódefiníciót mutat be:
// C2659a.cpp
// Compile using: cl /W4 /EHsc C2659a.cpp
#include <string>
using namespace std;
int main()
{
string string1(); // string1 is a function returning string
string string2{}; // string2 is a string initialized to empty
string1 = "String 1"; // C2659
string2 = "String 2";
}
A probléma megoldásához módosítsa az azonosító deklarációját úgy, hogy az ne legyen függvénydeklarációként értelmezve.
A C2659 hiba akkor is előfordulhat, ha a függvény olyan típussal rendelkezik, amely nem használható a megadott operátor bal oldalán lévő kifejezésben. Ez a példa c2659-et hoz létre, amikor a kód függvénymutatót rendel egy függvényhez:
// C2659b.cpp
// Compile using: cl /W4 /EHsc C2659b.cpp
int func0(void) { return 42; }
int (*func1)(void);
int main()
{
func1 = func0;
func0 = func1; // C2659
}