diff --git a/Project.toml b/Project.toml index 14ee5ad..2315cf7 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "StaticArraysCore" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.1.0" +version = "1.2.0" [compat] julia = "1.6" diff --git a/src/StaticArraysCore.jl b/src/StaticArraysCore.jl index a2ad8ab..92011ff 100644 --- a/src/StaticArraysCore.jl +++ b/src/StaticArraysCore.jl @@ -384,4 +384,9 @@ array operations as in the example below. """ abstract type FieldVector{N, T} <: FieldArray{Tuple{N}, T, 1} end +# Add a new BroadcastStyle for StaticArrays, derived from AbstractArrayStyle +# A constructor that changes the style parameter N (array dimension) is also required +struct StaticArrayStyle{N} <: Base.Broadcast.AbstractArrayStyle{N} end +StaticArrayStyle{M}(::Val{N}) where {M,N} = StaticArrayStyle{N}() + end # module diff --git a/test/runtests.jl b/test/runtests.jl index 20e68ab..0e2c251 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -22,4 +22,6 @@ using StaticArraysCore, Test @test StaticArraysCore.tuple_length((5, 3)) == 2 @test StaticArraysCore.tuple_prod((5, 3)) == 15 @test StaticArraysCore.tuple_minimum((5, 3)) == 3 + + @test StaticArraysCore.StaticArrayStyle{1}(Val(2)) === StaticArraysCore.StaticArrayStyle{2}() end