Это точно правильно, потому что компилятор должен знать, какой тип он предназначен для распределения. Поэтому классы шаблонов, функции, перечисления и т. Д. Должны быть реализованы также в файле заголовка, если он должен быть опубликован или частично из библиотеки (статический или динамический), поскольку файлы заголовков НЕ скомпилированы в отличие от файлов c / cpp, которые находятся. Если компилятор не знает, что тип не может его скомпилировать. В .Net это возможно, потому что все объекты происходят из класса Object. Это не .Net.
Вы могли просто добавить, следующее к Шагам .bash_profile
alias subl="open -a /Applications/Sublime\ Text.app"
, чтобы отредактировать .bash_profile и сохранить изменения (нажмите esc и wq! сохранить и выйти)
$ cd ~
$ vim .bash_profile
$ source .bash_profile
$ subl .bash_profile