|
|
@@ -18,11 +18,9 @@
|
|
|
|
|
|
#include "expect/expect.hpp"
|
|
|
|
|
|
-namespace math { namespace matrix {
|
|
|
- template <typename, size_t, size_t> class matrix;
|
|
|
-}}
|
|
|
+#include "forward.h"
|
|
|
+#include "traits.hpp"
|
|
|
|
|
|
-namespace math { namespace vector {
|
|
|
#define VECTOR_ENABLE_IF_LT_N(index, expr) \
|
|
|
template <bool _ = true> \
|
|
|
typename std::enable_if<std::size_t(index) < N && _, expr>::type
|
|
|
@@ -47,22 +45,7 @@ namespace math { namespace vector {
|
|
|
for (std::size_t var = 0; var < end; ++var)
|
|
|
#define VECTOR_FOR_EACH(var) VECTOR_FOR_EACH_RANGE(var, N)
|
|
|
|
|
|
- struct {
|
|
|
- } fill;
|
|
|
- using fill_t = decltype(fill);
|
|
|
-
|
|
|
- template <typename T> struct is_vector {
|
|
|
- static const constexpr bool value = false;
|
|
|
- };
|
|
|
-
|
|
|
- template <typename T, std::size_t N> class vector;
|
|
|
- template <typename T, std::size_t N> struct is_vector<vector<T, N>> {
|
|
|
- static const constexpr bool value = true;
|
|
|
- };
|
|
|
- template <typename T, std::size_t R, std::size_t C>
|
|
|
- struct is_vector<matrix::matrix<T, R, C>> {
|
|
|
- static const constexpr bool value = true;
|
|
|
- };
|
|
|
+namespace math { namespace vector {
|
|
|
|
|
|
template <typename T, std::size_t N> class vector {
|
|
|
public:
|