(我觉得这一定是重复的,但我找不到它)。
考虑:
飞机.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 关键字声明的函数的内联扩展。