gpt4 book ai didi

c++ - 我可以声明一个可以将指向自身的指针作为参数的函数吗?

转载 作者:可可西里 更新时间:2023-11-01 15:05:13 24 4
gpt4 key购买 nike

阅读 stackoverflow 中的一个问题,我想知道是否可以声明一个带有指向自身的指针的函数。 IE。做出这样的 foo 声明,以下内容是正确的:

foo(foo);

最简单的想法是转换为另一个函数指针(不能转换为 void*,因为它可能更小),所以函数声明如下所示:

void foo(void (*)());

虽然这在 C 中是可以的(并且可以在 C++ 中进行强制转换),但我想知道,是否可以在没有这种艰难的“重新解释”强制转换或丢失类型信息的情况下完成。

换句话说,我想要以下声明:

void foo( void (*)( void (*)( void (*) ( ... ))));

但是,当然,无限的声明是不可能的。天真的 typedefing 也无济于事。

欢迎使用 C++ 模板,即使它们使调用代码 (foo(foo)) 看起来不那么简洁,但仍然有限

C 风格的答案表明,如何在不强制转换的情况下删除类型信息,或者其他此类技巧当然很有趣,但不会被接受。

最佳答案

显然不是 - 参见 this thread .此处所需的类型始终是无限的。

关于c++ - 我可以声明一个可以将指向自身的指针作为参数的函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1514619/

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