Я долго искал и не нашел ответов на свои проблемы (хотя я пытался применить некоторые методы, которые я нашел). Вот вопрос:C++: шаблон принимает объект шаблона как параметр. Ошибка связи Ошибка
Я должен создать шаблон, который принимает 2 аргумента: и integer и и object (экземпляр другого шаблона). Хотя этот класс шаблонов наследуется от других шаблонов, я думаю, что эти классы не являются частью проблемы. Так вот код:
template <typename Type, const ConPol<Type>& Div>
class ModPol : public Pol<Type>, public VecF<Type, Div.size()>{
private:
//
protected:
//
public:
// constructors & destructor
ModPol()
virtual ~ModPol();
};
Когда я пытаюсь вызвать этот конкретный класс, я использую эти строки:
const ConPol<int> poly;
ModPol<int, &poly> modpoly;
К сожалению, я получаю эту ошибку:
error: non-type template argument refers to object 'poly' that does not have linkage
Я хотел бы знать, как создать экземпляр класса шаблонов. Не стесняйтесь объяснять простыми словами (я думаю о себе как о новичке).
Cheers!
Кроме того, он должен быть проходной «поли» вместо «& поли», как ссылка, как ожидается, не указатель. – dbajgoric
Спасибо вам за ответ, кажется, что он правильно компилируется. Мой компилятор все еще находит ошибки для отдыха: «ошибка: не-типа шаблона аргумента типа „станд :: size_t“(он же„неподписанные долгое“) не является интегралом постоянной выражения» Этой ошибкой, касающееся «Div.size()», но я действительно не понимаю, как обойти это. – TanguyH