Можно ли и нужно ли выносить определение метода шаблонного класса в .cpp файл?
У меня есть шаблонный класс и его конструктор. Для обычных классов я пишу объявления в .hpp файле и определения к ним в .cpp файле. На сколько правильным будет делать такой вынос определения в .cpp файл в случае с конструктором шаблонного классам или другими его методами? Я пробовал реализовывать это примерно так (вроде бы работает, но громоздко):
// .hpp
...ъх
template<typename type>
class NAME
{
public:
NAME(type arg);
};
// .cpp
...
template<typename type>
NAME<type>::NAME(type arg)
{
// определение
}
На некоторых форумах люди говорят, что правильнее оставлять определение в заголовочном классе. Но как по мне, это будет сильно ломать всю структуру проекта. Или не будет?
Спасибо!