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, Bes 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 foono nombra nada.