Предположим, что класс шаблона A определен следующим образом:
template <typename T>
class A
{
B<T> b;
};
Предположим, что класс шаблона B определен следующим образом:
template <typename T>
class B
{
A<T> a;
};
В идеале эти классы должны быть определены в отдельных заголовках со встроенными реализациями. Однако это вызовет проблему циклического включения. Одно из решений — поместить реализацию шаблонных классов в файл cpp. Однако для этого потребуются специализированные экземпляры шаблонов.
Есть ли способ сохранить встроенную реализацию классов и избежать циклической зависимости включения? Я хотел бы избежать использования указателей, если это возможно.
Спасибо,
Сэм