DLL класса шаблонов C ++: определение функции dllimport запрещено - PullRequest
0 голосов
/ 24 февраля 2020

Мне нужно собрать свой проект DLL. Пример кода в порядке, и код:

#ifdef MyDLL_EXPORTS
#define MyDLL_EXPORT __declspec(dllexport)
#else
#define MyDLL_EXPORT __declspec(dllimport)
#endif


class MyDLL_EXPORT arithmetic_operation
{
public:
    double add(double a, double b);
};

double arithmetic_operation::add(double a, double b)
{
    return a + b;
}

Затем я хочу изменить этот код на код шаблона, и измененный код:

#ifdef MyDLL_EXPORTS
#define MyDLL_EXPORT __declspec(dllexport)
#else
#define MyDLL_EXPORT __declspec(dllimport)
#endif

template <typename data>
class MyDLL_EXPORT arithmetic_operation
{
public:
    double add(data a, data b);
};

template <typename data>
double arithmetic_operation<data>::add(data a, data b)
{
    return a+b;
}

Однако, сообщается об ошибке при компиляции:

C2491: 'arithmetic_operation<data>::add': definition of dllimport function not allowed. 

Что означает эта ошибка? Как я могу исправить эту ошибку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...