私はC++を初めて使っていて、今はテンプレートを使っていて、この質問に遭遇しました。テンプレートを使用したC++ヘッダのオーダー
テンプレートタイプに別のクラスが必要な場合、ヘッダーのインクルード注文の特定の要件がありますか?このよう
vector<string> stringVector;
:私たちは前vector
からstring
を含める必要がありますか?
私はこれを読んで(C++ Header order)、それはヘッダーファイルがクラス要求の順序に含まれるべきだと言っています。
しかし、この(Template Compilation)が示し、またはそれは私の誤解である場合には、「コンパイラは、テンプレートクラスのインスタンス化に与えられた特定のタイプのためのコードを生成」、と私は、これは我々がインスタンス化されたときにことを意味だと思うようstringVector
、コンパイラはすでにに含まれていますので、vector
ここにはstring
が必要です。
どの解釈が正しいのですか、私の解釈のどの部分が正しいか間違っていますか?ありがとう。
ありがとうございます。重要なことは:「誰かがそうする必要がある場合、プログラムはきれいに書かれていません」 – Janis