【发布时间】:2010-01-26 07:57:34
【问题描述】:
如果头文件包含函数定义,则编译器可以对其进行内联。如果函数被导出,函数的名称和实现也必须在链接期间对客户端可用。编译器如何实现这一点?它是否内联函数并为外部调用者提供实现?
考虑 Foo.h:
class Foo
{
int bar() { return 1; }
};
Foo::bar 可能被内联或不在库 foo.so 中。如果另一段代码包含 Foo.h,它是否总是创建自己的 Foo::bar 副本,无论是否内联?
【问题讨论】:
标签: c++ compiler-construction export inline