我正在为一个开源库做一些贡献,但是我在修改其他人的代码时遇到了麻烦。以前,该库有一个名为的文件IntervalT.h和一个在文件中调用Curves.h实现的文件Curves.tcc,并且由于某种原因Interval.h包括在内。Curves.h现在我需要使用IntervalT.hin 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扩展?