我正在为一个开源库做一些贡献,但是我在修改其他人的代码时遇到了麻烦。以前,该库有一个名为的文件IntervalT.h
和一个在文件中调用Curves.h
实现的文件Curves.tcc
,并且由于某种原因Interval.h
包括在内。Curves.h
现在我需要使用IntervalT.h
in Curves.h
,但是当我尝试使用IntervalT<NT>
in 定义的类时IntervalT.h
,编译器给了我错误(我已经包含IntervalT.h
在Curves.h
文件的开头):
../../../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
扩展?