Шаблоны C ++ и не выявленные идентификаторы [дублировать]C++

Программы на C++. Форум разработчиков
Anonymous
Шаблоны C ++ и не выявленные идентификаторы [дублировать]

Сообщение Anonymous »

Я использую несколько шаблонов в своем проекте. Я предпочитаю подход размещения объявлений в файл .h и определения в файле .tpp .
В настоящее время он настроен так:

Код: Выделить всё

// myclass.h
class myClass
{
template
T foo();
void bar();
}

#include myclass.tpp

// myclass.tpp
#include myclass.h

template
T myClass::foo()
{
// do some stuff
}

// myclass.cpp
#include myclass.h

void myClass::bar()
{
// do some stuff
}
Это компилируется и работает просто хорошо, но в myclass.tpp я получаю ошибку в включенном файле: основной файл не может быть включен рекурсивно при создании преамбулы . Как я уже сказал, несмотря на ошибку, которую она компилирует, и программа работает, но мне не нравится оставлять ошибки без изменений. /> Я чувствую, что что -то упускаю в этом подходе. Как вы можете определить членов класса, не включая заголовок, который включает в себя заявления? Единственный способ, которым я могу придумать, - это пересылать объявление класса в файле .tpp , но это нигде не упоминалось, что я видел этот подход, описанный.


Подробнее здесь: https://stackoverflow.com/questions/797 ... dentifiers

Вернуться в «C++»