The following code produces 1 allocation of 32 bytes if the function is created by a macro (same effect if it were an anonymous function). It has 0 allocations if the function is not created by a macro. Note that the allocation goes away if foo() does something that does not require StaticArrays (such as just return 1.0). Can someone tell me what is causing this allocation, and how I can get rid of it?
macro myfunction()
quote
function foo()
return @SVector Float64[1.0, 2.0]
end
end
end
l = @myfunction
@btime l()
function foo()
return @SVector Float64[1,1]
end
@btime foo()