解析循环依赖嵌套类型说明符

时间:2014-09-25 22:00:35

标签: c++ circular-dependency

很简单,A有没有办法引用B :: value_type,B引用A :: value_type?

struct B;

struct A {
    using value_type = int;
    value_type a;
    B::value_type b;
};

struct B {
    using value_type = int;
    value_type b;
    A::value_type a;
};

1 个答案:

答案 0 :(得分:0)

只是以一种非常黑客的方式。

template<int> struct Z
{
    struct B;

    struct A {
        using value_type = int;
        value_type a;
        typename B::value_type b;
    };

    struct B {
        using value_type = int;
        value_type b;
        typename A::value_type a;
    };
};

using A = Z<0>::A;
using B = Z<0>::B;