Синтаксис для конструктора в классе шаблонов

Я пытаюсь создать общий шаблон циклического буфера, но есть некоторая синтаксическая ошибка, которую я не могу понять. Ошибка в моем конструкторе, хотя кажется, что я параметризовал деструктор таким же образом, и он работает.Я следовал примеру Stroustrup C++, и он использует параметр перед оператором разрешения области видимости, а также в имени функции, как и я. Я также уверен, что циклических зависимостей нет, потому что я компилирую только один файл. Кроме того, реализация и объявления находятся в одном файле (CircBuf.h), и нет соответствующего файла .cpp, поэтому связывание также не должно быть проблемой. Я попытался добавить ключевое слово «inline» в соответствии с этим решением и получил ту же ошибку.

/* CircBuf.h */
template class CircBuf {
  // don't use default ctor                                                                                                                                               
  CircBuf();

  int size;
  T *data;
public:
  CircBuf(int);
  ~CircBuf();
};

template CircBuff::CircBuf(int i) {
  data = new T[i];
}
template CircBuf::~CircBuf() {
  delete data;
}

makefile

all:
        g++ -g -pedantic CircBuf.h -o prog

ошибка компилятора

CircBuf.h:13:22: error: ‘CircBuff’ does not name a type

5
задан xst 7 June 2012 в 20:18
поделиться