Udostępnij za pomocą


Błąd kompilatora C3853

'=': ponowne inicjowanie odwołania lub przypisania za pomocą funkcji reference-to-function jest niedozwolone

Uwagi

Nie można przypisać do odwołania za pomocą funkcji, ponieważ funkcje nie są wartościami lvalue.

Example

Poniższy przykład generuje kod C3853:

// C3853.cpp
// compile with: /EHsc
#include <iostream>
int afunc(int i)
{
   return i;
}

typedef int (& rFunc_t)(int);

int main()
{
   rFunc_t rf = afunc;   // OK binding a reference to function
   rf = afunc;   // C3853, can't reassign to a ref that's an lvalue
   int i = 99;
   int & ri = i;
   std::cout << i << std::endl;
   ri = 0;   // OK, i = 88;
   std::cout << i << std::endl;
}