Сохранение определений функций шаблона C++ в файле .CPP.C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Сохранение определений функций шаблона C++ в файле .CPP.

Сообщение Гость »


У меня есть код шаблона, который я бы предпочел хранить в файле CPP, а не в заголовке. Я знаю, что это можно сделать, если вы знаете, какие типы шаблонов будут использоваться. Например:

.h файл

Код: Выделить всё

class foo
{
public:
template 
void do(const T& t);
};
файл .cpp

Код: Выделить всё

template 
void foo::do(const T& t)
{
// Do something with t
}

template void foo::do(const int&);
template void foo::do(const std::string&);
Note the last two lines - the foo::do template function is only used with ints and std::strings, so those definitions mean the app will link.

My question is - is this a nasty hack or will this work with other compilers/linkers? I am only using this code with VS2008 at the moment but will be wanting to port to other environments.


Источник: https://stackoverflow.com/questions/115 ... a-cpp-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»