次の循環依存関係を解決するにはどうすればよいですか?
typedef boost::variant<int, bool, double, std::string, Structure> Value;
typedef std::list<std::pair<std::string, ValueContainer>> Structure;
typedef std::vector<Value> ValueContainer;
Capiデータベースライブラリのオブジェクトをより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;