определения типов Этот код не компилировать:Круговые
class B;
class A{
typedef int AThing;
typedef B::BThing BThing;
};
class B{
typedef int BThing;
typedef A::Athing AThing;
};
Поскольку A
нуждается в typedef
от B
и B
необходим один из A
.
Каков типичный метод использования typedefs с круговой зависимостью?
не дубликат IMO, здесь нет заголовка, не говоря уже о круговых зависимостях в заголовке. –
Не знаю, почему я не могу ответить, так что сделаю это здесь. Это, безусловно, не дублирование, а довольно сложный вопрос! Этот случай можно решить, добавив еще один уровень косвенности: [см. Демонстрацию] (https://godbolt.org/g/jx5IC9). Я столкнулся с одним и тем же случаем, и сейчас я ищу более общее и полезное решение. – Trollliar
@Trollliar Это интересный способ решения этой проблемы. – DarthRubik