91 template<
typename T>
inline
92 std::enable_if_t<!std::is_array<T>::value>
98 template<
typename T>
inline
99 std::enable_if_t<std::is_array<T>::value>
100 plus (std::remove_const_t<T> &l,
const T &r)
102 using type = std::remove_all_extents_t<T>;
103 static const std::uint32_t count =
sizeof (T) /
sizeof (type);
104 for (std::uint32_t i = 0; i < count; ++i)
108 template<
typename T1,
typename T2>
inline
109 std::enable_if_t<!std::is_array<T1>::value>
115 template<
typename T1,
typename T2>
inline
116 std::enable_if_t<std::is_array<T1>::value>
119 using type = std::remove_all_extents_t<T1>;
120 static const std::uint32_t count =
sizeof (T1) /
sizeof (type);
121 for (std::uint32_t i = 0; i < count; ++i)
125 template<
typename T>
inline
126 std::enable_if_t<!std::is_array<T>::value>
132 template<
typename T>
inline
133 std::enable_if_t<std::is_array<T>::value>
134 minus (std::remove_const_t<T> &l,
const T &r)
136 using type = std::remove_all_extents_t<T>;
137 static const std::uint32_t count =
sizeof (T) /
sizeof (type);
138 for (std::uint32_t i = 0; i < count; ++i)
142 template<
typename T1,
typename T2>
inline
143 std::enable_if_t<!std::is_array<T1>::value>
149 template<
typename T1,
typename T2>
inline
150 std::enable_if_t<std::is_array<T1>::value>
153 using type = std::remove_all_extents_t<T1>;
154 static const std::uint32_t count =
sizeof (T1) /
sizeof (type);
155 for (std::uint32_t i = 0; i < count; ++i)
159 template<
typename T1,
typename T2>
inline
160 std::enable_if_t<!std::is_array<T1>::value>
166 template<
typename T1,
typename T2>
inline
167 std::enable_if_t<std::is_array<T1>::value>
170 using type = std::remove_all_extents_t<T1>;
171 static const std::uint32_t count =
sizeof (T1) /
sizeof (type);
172 for (std::uint32_t i = 0; i < count; ++i)
176 template<
typename T1,
typename T2>
inline
177 std::enable_if_t<!std::is_array<T1>::value>
183 template<
typename T1,
typename T2>
inline
184 std::enable_if_t<std::is_array<T1>::value>
187 using type = std::remove_all_extents_t<T1>;
188 static const std::uint32_t count =
sizeof (T1) /
sizeof (type);
189 for (std::uint32_t i = 0; i < count; ++i)
193 template<
typename NoArrayT,
typename ScalarT>
inline
194 std::enable_if_t<!std::is_array<NoArrayT>::value>
200 template<
typename ArrayT,
typename ScalarT>
inline
201 std::enable_if_t<std::is_array<ArrayT>::value>
204 using type = std::remove_all_extents_t<ArrayT>;
205 static const std::uint32_t count =
sizeof (ArrayT) /
sizeof (type);
206 for (std::uint32_t i = 0; i < count; ++i)
207 p[i] = scalar / p[i];