Le mardi 19 avril 2016 à 06:58 -0700, Matt Bauman a écrit : > That's https://github.com/JuliaLang/julia/pull/11242. Another common > workaround is a generated function (but the wrapper function is > better if you don't need other generated functionality): > > @generated function f(x...) > N = length(x) > :(Array{Int, $N}) > end Perfect, thanks. I must say I never really understood what that giant PR was about, except that it sounded interesting.
Regards > > Hi! > > > > I'm looking for the recommended way of getting type inference to > > determine the number of elements passed via varargs. > > > > I guess a code snippet is better than a thousand words: in the > > following function, the type of a isn't inferred correctly. > > > > function f(x...) > > N = length(x) > > a = Array{Int, N}() > > # ... > > end > > > > Using a wrapper function fixes the type instability: > > > > g(x...) = g(x) > > function g{N}(x::NTuple{N}) > > a = Array{Int, N}() > > # > > ... > > end > > > > Is there a better solution than this workaround? > > > > > > Regards