Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
expressão à esquerda de '=' resulta em uma função. Não é possível atribuir a uma função (uma função não é um valor l)
Observações
Uma referência não pode ser reinicializada. A desreferenciação de uma referência a uma função produz uma função, que é um "rvalue", ao qual não se pode atribuir valores. Portanto, você não pode atribuir através de uma referência a uma função.
Example
O exemplo a seguir gera 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
}