Sdílet prostřednictvím


Chyba kompilátoru C3854

výraz nalevo od '=' se vyhodnotí jako funkce. Funkci nelze přiřadit (funkce není l-hodnota).

Poznámky

Odkaz nelze znovu inicializovat. Dereferencování odkazu na funkci přináší funkci, což je hodnota rvalue, ke které nemůžete přiřadit. Proto nelze přiřadit prostřednictvím odkazu na funkci.

Example

Následující příklad generuje C3854:

// 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
}