Как избежать распространения включаемых файлов из-за шаблонных классов - PullRequest
0 голосов
/ 04 мая 2018

В связи с реализацией класса шаблона в заголовочном файле я должен включить другие включения, используемые при реализации класса, в заголовочный файл.

В связи с этим каждый раз, когда я включаю свой шаблонный класс, который включает все остальные включения и т. Д.

Это может привести к эффективному распространению включения или даже к ненужному контексту.

Так, как лучше всего решить эту проблему?

Редактировать: Поскольку я не упомянул об этом явно, Я не говорю о случаях, когда прямое объявление могло бы решить это, как при обычном разделении .h / .cpp , но когда вы должны включить заголовок, а поскольку у вас нет cpp, вы вынуждены использовать его в .h

Редактировать 2 : Допустим, мой шаблонный класс имеет функцию с зависимостью от библиотеки третьего класса. Каждый класс, использующий мой шаблонный класс, теперь имеет одинаковую зависимость или может получить доступ к тому заголовку, который я не мог хотеть. Существует ли способ избежать этого?

1 Ответ

0 голосов
/ 04 мая 2018

Используйте прямое объявление, где это уместно, вместо #include. Заголовочный файл должен #include только необходимое, а остальные должны идти в исходном файле.

...