1111 */
1212// ----------------------------------------------------------------------------
1313
14- #ifndef MODM_VECTOR3_HPP
15- #define MODM_VECTOR3_HPP
14+ #pragma once
1615
1716#include < stdint.h>
1817#include " vector.hpp"
@@ -39,33 +38,33 @@ namespace modm
3938 class Vector <T, 3 >
4039 {
4140 public:
42- Vector ();
41+ constexpr Vector () = default ;
4342
4443 template <typename U>
45- explicit Vector (const U *array);
44+ constexpr explicit Vector (const U *array);
4645
47- explicit Vector (T inVal);
48- Vector (T inX, T inY, T inZ);
46+ constexpr explicit Vector (T inVal);
47+ constexpr Vector (T inX, T inY, T inZ);
4948
50- Vector (const Vector<T, 1 > &inX, const T &inY, const T &inZ);
51- Vector (const T &inX, const Vector<T, 1 > &inY, const T &inZ);
52- Vector (const T &inX, const T &inY, const Vector<T, 1 > &inZ);
49+ constexpr Vector (const Vector<T, 1 > &inX, const T &inY, const T &inZ);
50+ constexpr Vector (const T &inX, const Vector<T, 1 > &inY, const T &inZ);
51+ constexpr Vector (const T &inX, const T &inY, const Vector<T, 1 > &inZ);
5352
54- Vector (const Vector<T, 1 > &inX, const T &inY, const Vector<T, 1 > &inZ);
55- Vector (const Vector<T, 1 > &inX, const Vector<T, 1 > &inY, const T &inZ);
56- Vector (const T &inX, const Vector<T, 1 > &inY, const Vector<T, 1 > &inZ);
53+ constexpr Vector (const Vector<T, 1 > &inX, const T &inY, const Vector<T, 1 > &inZ);
54+ constexpr Vector (const Vector<T, 1 > &inX, const Vector<T, 1 > &inY, const T &inZ);
55+ constexpr Vector (const T &inX, const Vector<T, 1 > &inY, const Vector<T, 1 > &inZ);
5756
58- Vector (const Vector<T, 1 > &inX, const Vector<T, 1 > &inY, const Vector<T, 1 > &inZ);
57+ constexpr Vector (const Vector<T, 1 > &inX, const Vector<T, 1 > &inY, const Vector<T, 1 > &inZ);
5958
60- Vector (const Vector<T,2 > &inXY, const T &inZ);
61- Vector (const T &inX, const Vector<T, 2 > &inYZ);
59+ constexpr Vector (const Vector<T,2 > &inXY, const T &inZ);
60+ constexpr Vector (const T &inX, const Vector<T, 2 > &inYZ);
6261
63- Vector (const Vector<T, 2 > &inXY, const Vector<T, 1 > &inZ);
64- Vector (const Vector<T, 1 > &inX, const Vector<T, 2 > &inYZ);
62+ constexpr Vector (const Vector<T, 2 > &inXY, const Vector<T, 1 > &inZ);
63+ constexpr Vector (const Vector<T, 1 > &inX, const Vector<T, 2 > &inYZ);
6564
6665 template <typename U>
67- Vector (const Vector<U, 3 > &rhs);
68- Vector (const Matrix<T, 3 , 1 > &rhs);
66+ constexpr Vector (const Vector<U, 3 > &rhs);
67+ constexpr Vector (const Matrix<T, 3 , 1 > &rhs);
6968
7069
7170 inline void
@@ -190,9 +189,7 @@ namespace modm
190189 #endif
191190
192191 public:
193- T x;
194- T y;
195- T z;
192+ T x = 0 , y = 0 , z = 0 ;
196193 };
197194
198195 template <typename U, typename T>
@@ -213,6 +210,4 @@ namespace modm
213210 typedef Vector<uint16_t , 3 > Vector3u;
214211}
215212
216- #include " vector3_impl.hpp"
217-
218- #endif // MODM_VECTOR3_HPP
213+ #include " vector3_impl.hpp"
0 commit comments