Как я могу решить следующую циклическую зависимость?
typedef boost::variant<int, bool, double, std::string, Structure> Value;
typedef std::list<std::pair<std::string, ValueContainer>> Structure;
typedef std::vector<Value> ValueContainer;
Я пытаюсь представить объекты из библиотеки базы данных C API в форме C++. Эта база данных позволяет хранить значения или массивы значений, а также иметь представление для структур следующим образом:
typedef struct ApiStructureMember
{
char* name;
struct ApiValueContainer value;
struct ApiStructureMember_T* next;
} ApiStructureMember_T;
Наконец, объединение используется для представления значения следующим образом:
typedef struct ApiValue
{
union
{
int i;
const char* s;
...
struct ApiStructureMember_T* firstStructureMember;
} value;
} ApiValue_T;