Здравствуйте, pkl, Вы писали:
pkl>Если шаблон класса с методами, объявленный и определённый в файле .h, инстанциирован с одними и теми же аргументами шаблона в разных единицах трансляции, то я получу одни и те же символы в разных объектных файлах. Линкер ведь должен ругаться, но на практике такое использование шаблонов встречается часто. Почему это работает?
Потому что линкер учитывает, что такое может быть. И шаблоны тут не уникальны, inline функции, которые не могут быть встроены тоже дублируются в разных объектных файлах.