C ++ Usando uma referência à variável que está sendo definida
O código a seguir é válido em C ++, de acordo com o padrão (descontando os ... s)?
bool f(T& r)
{
if(...)
{
r = ...;
return true;
}
return false;
}
T x = (f(x) ? x : T());
Sabe-se que ele compila nas versões do GCC que este projeto usa (4.1.2 e 3.2.3 ... nem me inicie ...), masdevemos isto?
Editar: Adicionei alguns detalhes, por exemplo, sobre como f () conceitualmente se parece no código original. Basicamente, é para ser inicializadox em certas condições.