Циклическая зависимость Typedef

Как я могу решить следующую циклическую зависимость?

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; 
8
задан TemplateRex 9 August 2012 в 14:14
поделиться