Я пытаюсь создать союз, который содержит структуры. В конечном итоге я планирую создать в объединении множество различных структур, поэтому я хотел бы объявить их перед объединением, а затем просто использовать структуры в качестве имени типа.
Вот что я попробовал:
struct Bizz
{
int type;
std::string name;
};
struct Buzz
{
int type;
std::string name;
};
struct Bar
{
std::string name;
union of_type
{
Bizz bizz;
Buzz buzz;
} of_type;
};
struct Baz
{
std::string name;
union of_type
{
Bizz bizz;
Buzz buzz;
};
};
struct Foo
{
int type;
union of_type
{
Bar bar;
Baz baz;
} of_type;
};
Конечно, имена и поля являются лишь примерами, но структура basi c такая же.
Когда я пытаюсь присвоить значение:
Foo foo;
foo.type = 1;
foo.of_type.bar.name = "Hello";
I получить эту ошибку:
error: use of deleted function ‘Foo::foo()
Что я здесь не так делаю?