gpt4 book ai didi

c++ - 术语 `function declaration` 在 §7/9 (N4140) 中定义,但未定义为语法产生式。为什么?

转载 作者:行者123 更新时间:2023-11-30 05:45:14 24 4
gpt4 key购买 nike

在 §7/9 中你会找到函数声明的定义:

If the decl-specifier-seq contains no typedef specifier, the declaration is called a function declaration if the type associated with the name is a function type (8.3.5) and an object declaration otherwise.

在 §7/1 中,您可以找到语法产生式声明的定义,但其中没有指定函数声明,作为该定义的一部分.换句话说,C++语法中的function declaration如何归类?

最佳答案

由于该段谈到init-declarators,我将其应用于简单声明,其中有一个init-declarator-list。你可以看到这并不完全正确

// clearly, this is not the declaration of an object, so it should
// not be called an "object declaration", but 7p9 does say so
int &a = x;

struct A {
// AFAICS 7p9 should also apply here, but there is no init-declarator
// here, but a member-declarator. 9.2 also doesn't delegate to 7p9.
typedef int a;
};

结果是以下内容也包含函数声明,但该声明声明的不是函数。

template<typename T> void f();

总而言之,我认为规范中需要对此文本进行一些澄清。

关于c++ - 术语 `function declaration` 在 §7/9 (N4140) 中定义,但未定义为语法产生式。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29460818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com