diff --git a/src/Magnum/Math/RectangularMatrix.h b/src/Magnum/Math/RectangularMatrix.h index c6c11dd61..e2e9bb875 100644 --- a/src/Magnum/Math/RectangularMatrix.h +++ b/src/Magnum/Math/RectangularMatrix.h @@ -673,7 +673,12 @@ namespace Implementation { } #ifndef CORRADE_GCC45_COMPATIBILITY -template template inline constexpr RectangularMatrix::RectangularMatrix(Implementation::Sequence, const Vector& diagonal): _data{Implementation::diagonalMatrixColumn(sequence < DiagonalSize ? diagonal[sequence] : T{})...} {} +template template inline constexpr RectangularMatrix::RectangularMatrix(Implementation::Sequence, const Vector& diagonal): + #ifndef CORRADE_MSVC2013_COMPATIBILITY + _data{Implementation::diagonalMatrixColumn(sequence < DiagonalSize ? diagonal[sequence] : T{})...} {} + #else + _data({Implementation::diagonalMatrixColumn(sequence < DiagonalSize ? diagonal[sequence] : T{})...}) {} + #endif #else template template inline RectangularMatrix::RectangularMatrix(Implementation::Sequence, const Vector& diagonal) { constructInternal({Implementation::diagonalMatrixColumn(sequence < DiagonalSize ? diagonal[sequence] : T{})...}); diff --git a/src/Magnum/Math/Vector.h b/src/Magnum/Math/Vector.h index 00a46d588..7adda1d58 100644 --- a/src/Magnum/Math/Vector.h +++ b/src/Magnum/Math/Vector.h @@ -204,8 +204,22 @@ template class Vector { * * @see operator[]() */ - T* data() { return _data; } - constexpr const T* data() const { return _data; } /**< @overload */ + T* data() { + #ifndef CORRADE_MSVC2013_COMPATIBILITY + return _data; + #else + return &_data[0]; + #endif + } + + /** @overload */ + constexpr const T* data() const { + #ifndef CORRADE_MSVC2013_COMPATIBILITY + return _data; + #else + return &_data[0]; + #endif + } /** * @brief Value at given position