gpt4 book ai didi

c++ - 这一行是否声明了一个函数? C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:44 25 4
gpt4 key购买 nike

我正在阅读 litb 关于 SFINAE 的问题 here我想知道他的代码究竟在声明什么。下面是一个更简单(没有模板)的示例:

int (&a())[2];

那到底在声明什么? &的作用是什么?更让我困惑的是,如果我改为声明以下内容

int b()[2];

我在声明一个返回数组的函数时出错,而第一行没有这样的错误(因此,有人会认为第一个声明不是函数)。但是,如果我尝试分配一个

a = a;

我收到一条错误消息,提示我正在尝试将函数分配给...所以现在它一个函数。这到底是什么东西?

最佳答案

这些很棒的程序叫做 cdecl 和 c++decl。它们对于找出复杂的声明非常有帮助,尤其是对于 C 和 C++ 用于函数指针的拜占庭形式。

tyler@kusari ~ $ c++decl
Type `help' or `?' for help
c++decl> explain int (&a())[2]
declare a as function returning reference to array 2 of int
c++decl> explain int b()[2]
declare b as function returning array 2 of int

a 返回一个引用,b 不返回。

关于c++ - 这一行是否声明了一个函数? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1024341/

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