是否允许使用未定义函数的地址?

问题描述 投票:6回答:1

以下代码定义了整个程序。该程序符合标准(最新版本)吗?

void foo();

int main()
{
    auto x = &foo;
    return 0;
}

Here是便捷快捷方式。

此代码没有实际用途,我只是很好奇。

c++ language-lawyer function-pointers one-definition-rule
1个回答
10
投票

Every function that is odr-used requires a definition(无需诊断)。取一个函数的地址是一种奇特的用法,因此该程序表现出不确定的行为。通过优化,优化了地址的地址,因此它没有链接器错误,但是不需要工作。

© www.soinside.com 2019 - 2024. All rights reserved.