我想知道如何声明一个函数类型,该函数类型使用C ++中的typedef
返回相同类型的函数。
在观看Rob Pike在词法扫描方面的Golang演讲时,我遇到了以下代码片段,
type stateFn func(*Scanner) stateFn
这是我想在C ++中复制的确切行为。
我尝试使用以下类型定义
typedef state_fn state_fn(Scanner &);
但这给了我错误function returning function is not allowed
。
可以做这样的事情吗?如果没有,我该如何做类似的事情?
答案 0 :(得分:0)
您不能以C ++返回函数。参见[dcl.fct] p10:
函数不得具有数组或函数的返回类型,尽管它们可以具有指针或对此类事物的引用的返回类型。
但是,您可以返回某种形式的callable(可能包装了相同类型的函数)。