gpt4 book ai didi

c++ - 成员指针指向的函数类型

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

N3797::8.3.5/6

A function type with a cv-qualifier-seq or a ref-qualifier (including a type named by typedef-name (7.1.3, 14.1)) shall appear only as:

[...]

— the function type to which a pointer to member refers

[...]

你能举个例子吗?我正在尝试以下操作:

struct A
{
int foo();
};

int A::* foo() &; //ill-formed.

struct B
{
int (*bar)() &; //ill-formed
};

最佳答案

我试过把它写成through a compiler .

前者,

int A::* foo() &;

是不正确的语法。要创建指向成员函数的指针,您仍然需要放在括号中:

int (A::*foo)() &;

然后它就被接受了。

另一个,

int (*bar)() &;

被 gcc 接受,但我的本地 clang 拒绝它

13 col 10 error: pointer to function type cannot have '&' qualifier

理所当然。它是一个指向非成员函数的指针,没有任何东西可以作为引用。 Gcc 显然只是忽略了 &

关于c++ - 成员指针指向的函数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26173403/

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