Вывод специализированного шаблона класса

У меня проблема с выводом шаблонных классов.
Следующий фрагмент кода покажет мою проблему:

class object {
}

template <class T>
class container {
public:
cotainer(void) {
// do some work
}
}

template <class in, class out>
class stage {
private:
container<in> *input;
container<out> *output;
public:
stage(bool input, container<out> *output) {
// do some other work
}
}

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

template <class T>
class derived : public stage<T, T> {
public:
derived(container<T> *output) : stage<T, T>(false, output) {}
}

Но, если производный класс является специализацией stage, я получаю ошибку.

class derived : public stage<object, object> {
public:
derived(container<object> *output) : stage<object, object>(false, output) {}
}

Ошибка в том, что компилятор не находит конструктор stage.

undefined reference to `stage<object, object>::stage(bool, container<object>*)'

Как я могу решить проблему?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]