Trabajando en la pregunta this, encontré un comportamiento incoherente.const referencia vinculante a un rvalue
¿Por qué el enlace de referencia se comporta de forma diferente en un constructor desde una función común?
struct A {
};
struct B : public A {
B(){}
private:
B(const B&);
};
void f(const B& b) {}
int main() {
A a(B()); // works
A const & a2 = B(); // C++0x: works, C++03: fails
f(B()); // C++0x: works, C++03: fails
}
he probado para C++ 03 con g ++ - 4,1 y Comeau 4.2.45.2 en estricta modo C++ 03 y con C++ 0x extensiones deshabilitadas. Obtuve los mismos resultados.
Para C++ 0x se probó con g ++ - 4.4 y Comeau 4.3.9 en modo relajado y con extensiones C++ 0x habilitadas. Obtuve los mismos resultados.
famoso conocido como "el análisis sintáctico más irritante". – earl
No puedo esperar el día en que pueda decirle a alguien "fuiste víctima del problema de análisis más molesto". Por supuesto, cuando eso suceda me olvidaré por completo y volveré a odiar a C++. –