@@ -63,43 +63,50 @@ modm::Vector<T, 3>::ptr() const
6363
6464// ----------------------------------------------------------------------------
6565template <typename T>
66- modm::Vector<T, 3 >
66+ constexpr modm::Vector<T, 3 >
67+ modm::Vector<T, 3 >::operator - () const
68+ {
69+ return modm::Vector<T, 3 >(-x, -y, -z);
70+ }
71+
72+ template <typename T>
73+ constexpr modm::Vector<T, 3 >
6774modm::Vector<T, 3 >::operator + (const modm::Vector<T, 3 > &rhs) const
6875{
6976 return modm::Vector<T, 3 >(x+rhs.x , y+rhs.y , z+rhs.z );
7077}
7178
7279template <typename T>
73- modm::Vector<T, 3 >
80+ constexpr modm::Vector<T, 3 >
7481modm::Vector<T, 3 >::operator - (const modm::Vector<T, 3 > &rhs) const
7582{
7683 return modm::Vector<T, 3 >(x-rhs.x , y-rhs.y , z-rhs.z );
7784}
7885
7986template <typename T>
80- T
87+ constexpr T
8188modm::Vector<T, 3 >::operator * (const modm::Vector<T, 3 > &rhs) const
8289{
8390 return x*rhs.x + y*rhs.y + z*rhs.z ;
8491}
8592
8693template <typename T>
87- modm::Vector<T, 3 >
94+ constexpr modm::Vector<T, 3 >
8895modm::Vector<T, 3 >::operator ^ (const modm::Vector<T, 3 > &rhs) const
8996{
9097 return modm::Vector<T, 3 >(y*rhs.z -z*rhs.y , z*rhs.x -x*rhs.z , x*rhs.y -y*rhs.x );
9198}
9299
93100template <typename T>
94- modm::Vector<T, 3 >
95- modm::Vector<T, 3 >::operator * (const T & rhs) const
101+ constexpr modm::Vector<T, 3 >
102+ modm::Vector<T, 3 >::operator * (T rhs) const
96103{
97104 return modm::Vector<T, 3 >(x*rhs, y*rhs, z*rhs);
98105}
99106
100107template <typename T>
101- modm::Vector<T, 3 >
102- modm::Vector<T, 3 >::operator / (const T & rhs) const
108+ constexpr modm::Vector<T, 3 >
109+ modm::Vector<T, 3 >::operator / (T rhs) const
103110{
104111 return modm::Vector<T, 3 >(x/rhs, y/rhs, z/rhs);
105112}
@@ -129,7 +136,7 @@ modm::Vector<T, 3>::operator -= (const modm::Vector<T, 3> &rhs)
129136
130137template <typename T>
131138modm::Vector<T, 3 >&
132- modm::Vector<T, 3 >::operator *= (const T & rhs)
139+ modm::Vector<T, 3 >::operator *= (T rhs)
133140{
134141 x *= rhs;
135142 y *= rhs;
@@ -140,7 +147,7 @@ modm::Vector<T, 3>::operator *= (const T &rhs)
140147
141148template <typename T>
142149modm::Vector<T, 3 >&
143- modm::Vector<T, 3 >::operator /= (const T & rhs)
150+ modm::Vector<T, 3 >::operator /= (T rhs)
144151{
145152 x /= rhs;
146153 y /= rhs;
@@ -149,14 +156,6 @@ modm::Vector<T, 3>::operator /= (const T &rhs)
149156 return *this ;
150157}
151158
152- // ----------------------------------------------------------------------------
153- template <typename T>
154- modm::Vector<T, 3 >
155- modm::Vector<T, 3 >::operator - () const
156- {
157- return modm::Vector<T, 3 >(-x, -y, -z);
158- }
159-
160159// ----------------------------------------------------------------------------
161160template <typename T>
162161float
0 commit comments