Very simple, is there any way for both A to refer to B::value_type, B refer to 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;
};