我倾向于将较小函数的主体直接放入头文件 foo.h
中,而不是放入单独的实现文件 foo.cc
中,因为这样编译器就可以始终完整地查看这些函数并决定内联它们。
示例:
// File "foo.h":
struct Foo {
// ...
int GetCount() const { return count_; }
};
现在,任何使用 Foo
的代码都可以看到整个 GetCount
实现,并可以决定内联它。
这是好的做法吗?如果是这样,您是否也将稍大的函数定义放入头文件中?
最佳答案
现代编译器有link time optimization ,因此不再需要在 header 中提供可用的代码来内联函数。因此,我认为最好的做法是将声明标记为内联,但将定义放在 cpp 中。
关于c++ - 将函数定义直接放在头文件中以便编译器可以内联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3389443/