Я пишу свою библиотеку и столкнулся с проблемой раздельной компиляции. Вариант засунуть все определения в *.h файл - не подходит. Сильно раздражает и мешает писать код. Добавлять костыль по типу
template class *; - не подходит. Мои мучения явно не стоят мучений человека, который будет использовать библиотеку, причём настолько незначительные по сравнению с этим. Нашёл следующий вариант: В конце h файла (До #endif header guard-a естественно) подключаю *.cpp файл в котором есть подобие heder guard-a, но только для *.cpp (Если её упустить - ситуация будет такая-же как и с header guard-ом, только если там объявление, то тут определение). Остальное без изменений - в *.cpp файле - подключение *.h файла + определение. В *.h файле - header guard + объявление. Так вот, какие минусы в этом вы видите?
template class *; - не подходит. Мои мучения явно не стоят мучений человека, который будет использовать библиотеку, причём настолько незначительные по сравнению с этим. Нашёл следующий вариант: В конце h файла (До #endif header guard-a естественно) подключаю *.cpp файл в котором есть подобие heder guard-a, но только для *.cpp (Если её упустить - ситуация будет такая-же как и с header guard-ом, только если там объявление, то тут определение). Остальное без изменений - в *.cpp файле - подключение *.h файла + определение. В *.h файле - header guard + объявление. Так вот, какие минусы в этом вы видите?