Ciertamente me falta algo, pero no entiendo por qué esto se compila (con g ++ y clang ++):
struct A
{
};
struct B
{
};
int main()
{
A a(B);
}
En primer lugar, B
es un tipo ... no un valor. ¿Cómo debo interpretar este código?
A a(B());
que podría ser una definición variable o una declaración de función.
struct A{}; int main() { A(foo); }
compila tal cual , incluso si foo
no nombra nada.