Julia: TypeVars dalam tupel dalam parameter tipe

Dibuat pada 1 Des 2016  ·  3Komentar  ·  Sumber: JuliaLang/julia

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}

Ya, itu seharusnya tupel dan bukan tipe tupel. Saya menyalahkan @Keno (https://github.com/Keno/Cxx.jl/blob/master/src/cxxtypes.jl#L52).

Saya sepenuhnya berharap ini tidak didukung, tetapi saya harap itu membuat @Keno mengubah (true, false, false) menjadi Tuple{Val{true}, Val{false}, Val{false}} di Cxx.jl.

types and dispatch won't change

Semua 3 komentar

Dalam pembelaan saya, itu dulu adalah satu dan sama.

Itu sah. Saya juga menggali detail implementasi Cxx untuk mengirimkan tipe Cxx, yang mungkin Anda harap orang tidak akan melakukannya.

Tuple{true, false, false} juga berfungsi (walaupun sedikit aneh karena sebenarnya tidak bisa menjadi tipe apa pun).

Ditutup sebagai tidak akan diperbaiki, karena saya tidak berpikir kami berencana untuk dapat menghitung lebih dari tupel.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat