julia> type Foo{N} end
julia> Foo{(true, true)}
Foo{(true,true)}
julia> typealias Bar{N} Foo{N}
Foo{N}
julia> Bar{(true, true)}
Foo{(true,true)}
julia> typealias Baz Foo{(true, true)}
Foo{(true,true)}
julia> typealias Quuz{M, N} Foo{(M, N)}
TypeError: Foo: in parameter, expected Type{T}, got Tuple{TypeVar,TypeVar}
是的,那些应该是元组而不是元组类型。 我责怪@Keno (https://github.com/Keno/Cxx.jl/blob/master/src/cxxtypes.jl#L52)。
我完全希望这不受支持,但我希望让@Keno在(true, false, false)
更改Tuple{Val{true}, Val{false}, Val{false}}
。
在我的辩护中,那些曾经是一回事。
那是合法的。 我也在深入研究 Cxx 实现细节,以便在 Cxx 类型上进行调度,也许你希望人们不会这样做。
Tuple{true, false, false}
也可以工作(虽然有点奇怪,因为它实际上不能是任何类型)。
关闭为 wontfix,因为我不认为我们计划能够量化元组。