c++ - template - ¿Qué significa ''inicialización inválida de referencia no const''?
template function c++ (1)
En C ++, los temporales no pueden vincularse a referencias no constantes.
Main<int> &mainReference = Main<int>::tempFunction();
Aquí está intentando asignar el resultado de una expresión rvalue a una referencia mainReference
no constante que no es válida.
Intenta hacerlo const
Al compilar este código, aparece el siguiente error :
En la función ''int main ()'': Línea 11: error: inicialización no válida de la referencia no constante del tipo ''Main &'' de un temporal de tipo ''Main''
Aquí está mi código:
template <class T>
struct Main
{
static Main tempFunction(){
return Main();
}
};
int main()
{
Main<int> &mainReference = Main<int>::tempFunction(); // <- line 11
}
No entiendo por qué? ¿Alguien puede explicar?