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

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

Сообщение Anonymous »

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

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

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

#include "myclass.tpp"
< /code>
// myclass.tpp
#include "myclass.h"

template
T myClass::foo()
{
// do some stuff
}
< /code>
// myclass.cpp
#include myclass.h

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

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

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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