例如
// a.h
strcut A
{
void simpleMethod();
void anotherMethod() {...; simpleMethod(); ...;}
};
// a.cpp
#include "a.h"
void A::simpleMethod() { one_line_simple_implementation; }
我的问题是:现代编译器优化可以在simpleMethod()
中内联anotherMethod()
吗?
答案 0 :(得分:1)
在这种情况下,是的。如果a.cpp
包含a.h
(我猜是这样)。只要编译器可以看到完整的定义。没事。但你需要说出来。
inline void A::simpleMethod() { one_line_simple_implementation; }
答案 1 :(得分:0)
如果您不使用inline void A::simpleMethod() { ... }
关键字,则可以使用inline
,否则可能会出现多个定义错误。
或者你可以做到
class A
{
void foo() { ... };
};