Я делаю некоторый вклад в библиотеку с открытым исходным кодом, но у меня возникают проблемы при модификации кода других людей.Ранее в библиотеке был файл с именем IntervalT.h
и файл с именем Curves.h
с реализацией в файле Curves.tcc
, а Interval.h
по некоторым причинам включает в себя Curves.h
.Сейчас мне нужно использовать IntervalT.h
в Curves.h
, но когда я пытался использовать класс IntervalT<NT>
, определенный в IntervalT.h
, компилятор выдает ошибку (я уже включил IntervalT.h
в начале Curves.h
file):
../../../inc/CORE/poly/Curves.h:1337:3: error: ‘IntervalT’ does not name a type
Мой вопрос: поскольку у меня никогда не было такого опыта, связана ли ошибка "does not name a type
" с взаимным включением заголовочных файлов c ++?Или это другие ошибки, которые вызывают эту ошибку?Если да, то как мне написать свою программу, чтобы Curves.h видел IntervalT.h?
Кстати, этот кусок кода был организован очень странным образом.Curves.tcc
фактически включается Curves.h
, что является обратным способом, который мы обычно делаем.Есть ли конкретная причина для этого?Или это не имеет значения?А что такое расширение .tcc
в конце концов?