Browse Source

Math: no need to use class here.

pull/276/head
Vladimír Vondruš 12 years ago
parent
commit
dcd89bac0a
  1. 25
      src/Magnum/Math/Matrix.h

25
src/Magnum/Math/Matrix.h

@ -34,7 +34,7 @@
namespace Magnum { namespace Math { namespace Magnum { namespace Math {
namespace Implementation { namespace Implementation {
template<std::size_t size, class T> class MatrixDeterminant; template<std::size_t, class> struct MatrixDeterminant;
} }
/** /**
@ -248,9 +248,8 @@ template<std::size_t size, class T> inline Corrade::Utility::Debug operator<<(Co
namespace Implementation { namespace Implementation {
template<std::size_t size, class T> class MatrixDeterminant { template<std::size_t size, class T> struct MatrixDeterminant {
public: T operator()(const Matrix<size, T>& m);
T operator()(const Matrix<size, T>& m);
}; };
template<std::size_t size, class T> T MatrixDeterminant<size, T>::operator()(const Matrix<size, T>& m) { template<std::size_t size, class T> T MatrixDeterminant<size, T>::operator()(const Matrix<size, T>& m) {
@ -262,18 +261,16 @@ template<std::size_t size, class T> T MatrixDeterminant<size, T>::operator()(con
return out; return out;
} }
template<class T> class MatrixDeterminant<2, T> { template<class T> struct MatrixDeterminant<2, T> {
public: constexpr T operator()(const Matrix<2, T>& m) const {
constexpr T operator()(const Matrix<2, T>& m) const { return m[0][0]*m[1][1] - m[1][0]*m[0][1];
return m[0][0]*m[1][1] - m[1][0]*m[0][1]; }
}
}; };
template<class T> class MatrixDeterminant<1, T> { template<class T> struct MatrixDeterminant<1, T> {
public: constexpr T operator()(const Matrix<1, T>& m) const {
constexpr T operator()(const Matrix<1, T>& m) const { return m[0][0];
return m[0][0]; }
}
}; };
} }

Loading…
Cancel
Save