sizeof里面的函数调用没有调用它?C++

Edu*_*yan 0 c++ linker function sizeof

考虑这段代码,我试图打印函数的 sizeof 返回值:

int f(int);

int main()
{
    std::cout << sizeof(f(2)) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

这令人惊讶(至少对我而言)打印 4。

但这是否应该给我一个链接错误,因为该函数未定义?
未调用 sizoef 中的函数吗?sizeof 中的表达式是否有更广泛的规则?

dav*_*ave 5

是的,根据cppreference

当应用于表达式时,sizeof 不计算表达式 [...]

更多关于未计算的表达式在这里