Может кто-нибудь объяснить, что не так с этой реализацией?
Я столкнулся со следующими ошибками
ошибка: класс хранения в анонимном агрегате в области действия класса не допускается
ошибка: использование удаленной функции 'ResultUnion :: ResultUnion ()'
#include<iostream>
#include<vector>
using namespace std;
enum MediaKind { Container, Music};
typedef vector<string> StringList;
struct ResultUnion {
enum MediaKind kind;
static union {
struct {
string Type;
StringList List;
bool searchable;
}c;
struct {
string Type;
uint32_t duration;
}m;
};
};
int main()
{
ResultUnion ResultUnionobj[2];
ResultUnionobj[0].kind = Container;
ResultUnionobj[0].c.Type = "Container";
ResultUnionobj[1].kind = Music;
ResultUnionobj[1].m.Type = "Music";
cout << "first:" << ResultUnionobj[0].c.Type << endl << "second:" << ResultUnionobj[1].m.Type;
}