Я знаю, что стандартные библиотеки используют с .h для старых библиотек C и включает без .h для современных библиотек. Но какова лучшая практика для отдельных классов?
Где я работаю, у нас всегда была папка include с двумя файлами в классе: classname.h и ClassName. ClassName включает classname.h и classname.h включает в себя заголовок реального класса. Чтобы включить класс, используйте
#include <ClassName>
То, как Qt это делает, и я уверен, что Qt - причина, по которой они начали делать это в моей компании. Но есть ли какие-либо выгоды от этого?
Недостатки очевидны, я думаю:
- Еще один файл для создания нового класса (мы делаем это с bash script, но все же)
- Еще один файл для каждого класса для управления
- При переименовании файла/класса с помощью среды IDE вам обычно нужно вручную адаптировать файл ClassName (даже Qt Creator не может этого сделать)
- Я никогда не видел этот стиль нигде, кроме библиотеки std и Qt
Используете ли вы этот стиль? Если да, то почему? Каковы аргументы для этого? Есть ли больше аргументов против этого?