обычно, если моя цепочка #include становится круговой, я решаю ее, заменяя одно из #include предварительным объявлением, а затем перемещаю все реализации функций, которые зависят от этого типа, в файл cpp, где я #include заголовоквместо этого.
Но - в некоторых ситуациях плохо помещать реализацию функции в файл cpp - особенно когда речь идет о шаблонах или встроенных функциях.
Поэтому - Есть ли другие способы борьбы с циклическим#include цепочки вместо использования предварительных объявлений?
спасибо!