1
3
总的来说,我同意达里奥的观点——在类型层面上这样做似乎是不可能的。
您甚至可以添加运算符():
这使用了一个包装器(
来自提问者
当前位置此答案所缺乏的是将多个不同函数作为其中一个函数的参数传递的能力。这可以通过以下两种方法解决:
有了这一澄清,答案足够好,可以接受。 |
2
5
this thread . 这里需要的类型总是无限的。 |
3
5
上述程序将编译没有任何错误。但它不是递归的。下面修改的函数是带限制器的递归版本。
|
4
4
对 它是 "Can you write a function that returns a pointer to itself?" ,除了在您的示例中,函数类型递归地显示为argumkent,而不是返回类型。不过,Herb Sutters的答案是可重用的:将指针封装在前向声明的代理类中。 |
5
2
一个相关的问题是返回相同类型的函数指针。它在实现状态机时出现,因此它有自己的 entry in the C FAQ . 同样的解决方法也适用于您的问题。 |
6
1
我不相信你能有一个函数,它可以在C++中作为一个自变量,而不需要某种欺骗,比如把你的函数放在一个类中,并让函数把这个类当作一个参数。 一旦新的C++标准命中,另一种可能的方法是使用lambda,并使lambda自己捕获。我想应该是这样的:
请注意,这种语句在任何支持lambdas的编译器中都是完全未经测试的。您的里程可能会有所不同。 |
7
0
这是一个非常有效的用法
|
8
0
如果函数可以将自身作为参数,那么它可以通过调用自身来执行匿名递归。但在简单类型的lambda演算中,递归是不可能的(这基本上就是这里的函数类型)。为了执行匿名递归,需要使用递归函数或递归类型实现定点组合器。 |
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |