Экспорт класса унаследованного от шаблона. Ошибка!?
От: samadhi  
Дата: 06.12.05 17:36
Оценка:
Есть шаблонный класс допустим по работе с матрицами, реализующий основные
операции над матрицей. Экспортировать пытаюсь через __declspec(dllexport). При
подстановке любого типа у которого не определены операторы, скажем, умножения
компилятор говорит мне об этом. Хотя я нигде не пытаюсь этот тип перемножать.
Если убрать __decl..., то всё оки — он начинает себя вести как хорошо воспитанный
шаблон, т.е. компилить только то что я использую.

Не хочет компилить.
Обидно. Ничего не сделал, только вошёл.
class __declspec(dllexport) CMatrix :    public Matrix<CClass>
{
...
};


Я, конечно, нашёл решение, оно мне кажется "наименьшим злом",
но никак не решение проблемы. Но, блин, не красиво это. И почему
он пытается подставить мой тип туда, куда я не просил?

Всё замечательно компилируется и линкуется.
class CCMatrix : public Matrix<CClass>{};

// а вот 
// typedef Matrix<CClass> CCMatrix;
// не работает

class __declspec(dllexport) CMatrix : public CCMatrix
{
...
};


В качестве компилятора использую MS VC7.1.
В и-нете натолкнулся на похожий вопрос, а вот ответов не нашёл.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.