オープン ソース ライブラリに貢献していますが、他の人のコードを変更するのに苦労しています。以前は、ライブラリには file と呼ばれるファイルと、 file内の実装で呼び出されるファイルIntervalT.h
があり、何らかの理由でインクルードされていました。今はinを使用する必要がありますが、で定義されているクラスを使用しようとすると、コンパイラでエラーが発生します (既にファイルの先頭に含まれています)。Curves.h
Curves.tcc
Interval.h
Curves.h
IntervalT.h
Curves.h
IntervalT<NT>
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
結局延長って何?