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

The function call inside sizeof doesn't invoke it? C++

考虑这段代码,我正在尝试打印函数的 sizeof return 值:

int f(int);

int main()
{
    std::cout << sizeof(f(2)) << std::endl;
}

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

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

是的,根据cppreference

When applied to an expression, sizeof does not evaluate the expression [...]

有关未计算表达式的更多信息 here