Teilen über


Compilerfehler C3854

der Ausdruck links von „=“ wird zu einer Funktion ausgewertet Eine Funktion kann nicht zugewiesen werden (eine Funktion ist kein l-Wert).

Bemerkungen

Ein Verweis kann nicht erneut initialisiert werden. Das Ableiten eines Verweises auf eine Funktion führt zu einer Funktion, bei der es sich um einen Wert handelt, dem Sie nicht zuweisen können. Daher können Sie einen Verweis auf eine Funktion nicht zuweisen.

Example

Im folgenden Beispiel wird C3854 generiert:

// C3854.cpp
int afunc(int i)
{
   return i;
}

typedef int (& rFunc_t)(int);
typedef int (* pFunc_t)(int);

int main()
{
   rFunc_t rf = afunc;   // OK binding a reference to function
   pFunc_t pf = &afunc;   // OK initializing a pointer to function

   *pf = &afunc;   // C3854
   // try the following line instead
   // pf = &afunc;
   *rf = &afunc;   // C3854
}