iam*_*ind 1 c++ inline function linker-errors language-lawyer
例:
// header.h
void foo () // function definition in the file
{
}
// file1.cpp
#include"header.h"
...
// file2.cpp
#include"header.h"
...
Run Code Online (Sandbox Code Playgroud)
上面的代码将导致链接器错误.假设编译器是否inline foo()自动生成,则不会出现任何链接器错误.
我的问题是语言观点.为什么编译器不会inline自动生成它?会有什么不同吗?
问题换句话说:"如果编译器假定inline在每个定义的自由函数前面会出现什么问题?"
标题只被视为标题文本的复制粘贴.编译器不知道你的代码是在头文件而不是源文件中,所以它必须同时处理它们,从而允许错误.语言指定了这一点.
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |