Тайпдефы и дефайны. Все это в неймспейсе.
Не суть. Я взял создал еще один *.h файл, и перенес в него. Так же в неймспейсе.
Собралось, потом студия вылетела в каком то другом месте и на повторной сборке - таже ошибка.
В итоге почитал SO, ничего не понял, но было очень интересно.
Поставил static перед определением шаблона - завелось.
Вот буквально только что дошла симуляция до использования - вылет. Смотрю шаблон определяется, а в другом файле уже нулями забит.
Почитал SO еще, снова ничего не понял, поставил inline перед определением шаблона.
Вот за секунду до вашего поста запустил.
Вроде все ок.