`(&)()`在C编译器错误消息中的含义是什么

`(&)()`在C编译器错误消息中的含义是什么,第1张

概述这个错误是什么意思? error: no matching function for call to `foo::bar(Qux (&)())` 我知道编译器(g)无法将函数调用与foo成员函数匹配.我特意询问最后的额外内容;这一点:(&)(). 作为参考,我的函数调用是这样的: // inside another member function of `foo`Qux qux();this- 这个错误是什么意思?

error: no matching function for call to `foo::bar(Qux (&)())`@H_502_12@  

我知道编译器(g)无法将函数调用与foo成员函数匹配.我特意询问最后的额外内容;这一点:(&)().

作为参考,我的函数调用是这样的:

// insIDe another member function of `foo`Qux qux();this->bar(qux);@H_502_12@  

酒吧的签名是:

virtual voID bar(Qux&);@H_502_12@  

编译器还说唯一的候选者是:

virtual voID bar(Qux&);@H_502_12@  

我的函数调用签名与我的定义签名有何不同,(&)()是什么意思?

解决方法 好吧,(&)()本身并不意味着什么. (&)()只是Qux(&)()的一部分,这意味着引用一个不带任何东西并返回Qux的函数.这是因为:

Qux qux();      //PROBLEM!this->bar(qux);@H_502_12@  

这里的第一行不声明对象.它声明了一个函数.

在C中搜索vexing parse,在这个网站上,你会看到很多关于它的主题,详细讨论这个问题.

总结

以上是内存溢出为你收集整理的`(&)()`在C编译器错误消息中的含义是什么全部内容,希望文章能够帮你解决`(&)()`在C编译器错误消息中的含义是什么所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1218055.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存