In a static container staticMatrix with the following template parameter:
template<typename T, size_t M, size_t N>
staticMatrix{ ... }
I found the following construction that seems to only compile with c++-17.
template< typename T, size_t M, size_t N >
StaticMatrix( T (&)[M][N] ) -> StaticMatrix< std::remove_cv_t<T>, M, N >;
How can we understand this constructor and what does the argument T (&) and -> mean ?