Единственное, что приходит на ум - это написание заголовка включения, который определяет шаблон std::vector
(но не его элементы, которые нужно только объявить) и включает его вместо стандартного заголовка vector
.
Тогда вы можете явно создать экземпляр std::vector<whatever>
в отдельном модуле компиляции и связать его с этим.
Чтобы явно создать экземпляр шаблона, не используйте extern template
(это не будет работать), просто используйтеследующее:
#include <vector> // The standard header, not your forward-declaration!
template class std::vector<double>;