(これは重複しているに違いないと思いますが、見つかりません)。
検討:
飛行機.hpp:
template<class T>
void wings();
void tail();
さて...どこで定義 wings()
し、tail()
? それらを同じ場所で定義したいと思います。wings()
テンプレート化されていて、そうでないという事実については考えたくありtail()
ません。たぶん、私が時々書く理由がわかるでしょう:
飛行機.hpp:
template<class T>
void wings();
void tail();
#ifndef airplane_cpp
#define header
#endif
#include "airplane.cpp"
飛行機.cpp:
#define airplane_cpp
#include "airplane.hpp"
template<class T>
void wings() { }
#ifndef header
void tail() { }
#endif
しかし、確かにそれは最善の方法ではありません。
編集:私がTI DSPチップでプログラミングしていることを追加することは関連があるようです。ドキュメントによると、inline
キーワードは生成されたコードに定義された結果をもたらします:
inline キーワードは、標準の呼び出し手順を使用するのではなく、関数が呼び出された時点でインライン展開されることを指定します。コンパイラは、inline キーワードで宣言された関数のインライン展開を実行します。