Not
Å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.
'operator' : funktion som vänster operand
Anmärkningar
En funktion fanns till vänster om den angivna operatorn. Den vanligaste orsaken till det här felet är att kompilatorn har parsat identifieraren till vänster om operatorn som en funktion när utvecklaren avsåg att den skulle vara en variabel. Mer information finns i Wikipedia-artikeln Mest irriterande parsning.
Examples
Det här exemplet visar en funktionsdeklaration och en variabeldefinition som är lätt att förväxla:
// 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";
}
Lös problemet genom att ändra identifierarens deklaration så att den inte parsas som en funktionsdeklaration.
Fel C2659 kan också inträffa när funktionen har en typ som inte kan användas i uttrycket till vänster om den angivna operatorn. Det här exemplet genererar C2659 när koden tilldelar en funktionspekare till en funktion:
// C2659b.cpp
// Compile using: cl /W4 /EHsc C2659b.cpp
int func0(void) { return 42; }
int (*func1)(void);
int main()
{
func1 = func0;
func0 = func1; // C2659
}