我想要以下内容:
import _Differentiation
struct S {
var f: @differentiable(reverse) (Double, Double) -> Double
}
但是编译器抱怨Error: Abort trap: 6
并且堆栈跟踪的开始是
Assertion failed: (isa<X>(Val) && "cast<Ty>() argument of incompatible type!"), function cast, file Casting.h, line 269.
如果成员变量是一个参数的函数,则程序构建:
import _Differentiation
struct S {
var f: @differentiable(reverse) (Double) -> Double
}
但不允许有两个或多个参数。
我们可以编写一个函数,它具有两个参数的可微函数作为参数:
import _Differentiation
func g(f: @differentiable(reverse) (Double, Double) -> Double) {
// function body
}
如果一个函数可以有这种类型的参数,为什么结构不能有这种类型的成员变量?