コンストラクタを持ったクラスを共用体に使うとどうなるのか

#include <iostream>

class Alfa
{
    public:
        Alfa() { std::cout << __func__ << std::endl; }
};

class Bravo
{
    public:
        Bravo() { std::cout << __func__ << std::endl; }
};

int main()
{
    union
    {
        Alfa a;
        Bravo b;
    } u;

    return 0;
}

答え:コンパイルエラー

$ g++ union_with_classes.cxx 
union_with_classes.cxx: In function ‘int main()’:
union_with_classes.cxx:19: error: member ‘Alfa main()::::a’ with constructor not allowed in union
union_with_classes.cxx:20: error: member ‘Bravo main()::::b’ with constructor not allowed in union