@@ -83,7 +83,7 @@ namespace xsimd
8383 * @return the sum of \c x and \c y
8484 */
8585 template <class T , class A >
86- XSIMD_INLINE auto add (batch<T, A> const & x, batch<T, A> const & y) noexcept -> decltype(x + y)
86+ XSIMD_INLINE batch<T, A> add (batch<T, A> const & x, batch<T, A> const & y) noexcept
8787 {
8888 detail::static_check_supported_config<T, A>();
8989 return x + y;
@@ -287,7 +287,7 @@ namespace xsimd
287287 * @return the result of the bitwise and.
288288 */
289289 template <class T , class A >
290- XSIMD_INLINE auto bitwise_and (batch<T, A> const & x, batch<T, A> const & y) noexcept -> decltype(x & y)
290+ XSIMD_INLINE batch<T, A> bitwise_and (batch<T, A> const & x, batch<T, A> const & y) noexcept
291291 {
292292 detail::static_check_supported_config<T, A>();
293293 return x & y;
@@ -302,7 +302,7 @@ namespace xsimd
302302 * @return the result of the bitwise and.
303303 */
304304 template <class T , class A >
305- XSIMD_INLINE auto bitwise_and (batch_bool<T, A> const & x, batch_bool<T, A> const & y) noexcept -> decltype(x & y)
305+ XSIMD_INLINE batch_bool<T, A> bitwise_and (batch_bool<T, A> const & x, batch_bool<T, A> const & y) noexcept
306306 {
307307 detail::static_check_supported_config<T, A>();
308308 return x & y;
@@ -417,7 +417,7 @@ namespace xsimd
417417 * @return the result of the bitwise or.
418418 */
419419 template <class T , class A >
420- XSIMD_INLINE auto bitwise_or (batch<T, A> const & x, batch<T, A> const & y) noexcept -> decltype(x | y)
420+ XSIMD_INLINE batch<T, A> bitwise_or (batch<T, A> const & x, batch<T, A> const & y) noexcept
421421 {
422422 detail::static_check_supported_config<T, A>();
423423 return x | y;
@@ -432,7 +432,7 @@ namespace xsimd
432432 * @return the result of the bitwise or.
433433 */
434434 template <class T , class A >
435- XSIMD_INLINE auto bitwise_or (batch_bool<T, A> const & x, batch_bool<T, A> const & y) noexcept -> decltype(x | y)
435+ XSIMD_INLINE batch_bool<T, A> bitwise_or (batch_bool<T, A> const & x, batch_bool<T, A> const & y) noexcept
436436 {
437437 detail::static_check_supported_config<T, A>();
438438 return x | y;
@@ -474,7 +474,7 @@ namespace xsimd
474474 * @return the result of the bitwise xor.
475475 */
476476 template <class T , class A >
477- XSIMD_INLINE auto bitwise_xor (batch<T, A> const & x, batch<T, A> const & y) noexcept -> decltype(x ^ y)
477+ XSIMD_INLINE batch<T, A> bitwise_xor (batch<T, A> const & x, batch<T, A> const & y) noexcept
478478 {
479479 detail::static_check_supported_config<T, A>();
480480 return x ^ y;
@@ -489,7 +489,7 @@ namespace xsimd
489489 * @return the result of the bitwise xor.
490490 */
491491 template <class T , class A >
492- XSIMD_INLINE auto bitwise_xor (batch_bool<T, A> const & x, batch_bool<T, A> const & y) noexcept -> decltype(x ^ y)
492+ XSIMD_INLINE batch_bool<T, A> bitwise_xor (batch_bool<T, A> const & x, batch_bool<T, A> const & y) noexcept
493493 {
494494 detail::static_check_supported_config<T, A>();
495495 return x ^ y;
@@ -699,7 +699,7 @@ namespace xsimd
699699 * @return the result of the division.
700700 */
701701 template <class T , class A >
702- XSIMD_INLINE auto div (batch<T, A> const & x, batch<T, A> const & y) noexcept -> decltype(x / y)
702+ XSIMD_INLINE batch<T, A> div (batch<T, A> const & x, batch<T, A> const & y) noexcept
703703 {
704704 detail::static_check_supported_config<T, A>();
705705 return x / y;
@@ -714,7 +714,7 @@ namespace xsimd
714714 * @return a boolean batch.
715715 */
716716 template <class T , class A >
717- XSIMD_INLINE auto eq (batch<T, A> const & x, batch<T, A> const & y) noexcept -> decltype(x == y)
717+ XSIMD_INLINE auto eq (batch<T, A> const & x, batch<T, A> const & y) noexcept
718718 {
719719 detail::static_check_supported_config<T, A>();
720720 return x == y;
@@ -729,7 +729,7 @@ namespace xsimd
729729 * @return a boolean batch.
730730 */
731731 template <class T , class A >
732- XSIMD_INLINE auto eq (batch_bool<T, A> const & x, batch_bool<T, A> const & y) noexcept -> decltype(x == y)
732+ XSIMD_INLINE batch_bool<T, A> eq (batch_bool<T, A> const & x, batch_bool<T, A> const & y) noexcept
733733 {
734734 detail::static_check_supported_config<T, A>();
735735 return x == y;
@@ -1607,7 +1607,7 @@ namespace xsimd
16071607 * @return the result of the modulo.
16081608 */
16091609 template <class T , class A >
1610- XSIMD_INLINE auto mod (batch<T, A> const & x, batch<T, A> const & y) noexcept -> decltype(x % y)
1610+ XSIMD_INLINE batch<T, A> mod (batch<T, A> const & x, batch<T, A> const & y) noexcept
16111611 {
16121612 detail::static_check_supported_config<T, A>();
16131613 return x % y;
@@ -1623,7 +1623,7 @@ namespace xsimd
16231623 * @return the result of the product.
16241624 */
16251625 template <class T , class A >
1626- XSIMD_INLINE auto mul (batch<T, A> const & x, batch<T, A> const & y) noexcept -> decltype(x * y)
1626+ XSIMD_INLINE batch<T, A> mul (batch<T, A> const & x, batch<T, A> const & y) noexcept
16271627 {
16281628 detail::static_check_supported_config<T, A>();
16291629 return x * y;
@@ -1671,7 +1671,7 @@ namespace xsimd
16711671 * @return a boolean batch.
16721672 */
16731673 template <class T , class A >
1674- XSIMD_INLINE auto neq (batch<T, A> const & x, batch<T, A> const & y) noexcept -> decltype(x != y)
1674+ XSIMD_INLINE auto neq (batch<T, A> const & x, batch<T, A> const & y) noexcept
16751675 {
16761676 detail::static_check_supported_config<T, A>();
16771677 return x != y;
@@ -1686,7 +1686,7 @@ namespace xsimd
16861686 * @return a boolean batch.
16871687 */
16881688 template <class T , class A >
1689- XSIMD_INLINE auto neq (batch_bool<T, A> const & x, batch_bool<T, A> const & y) noexcept -> decltype(x != y)
1689+ XSIMD_INLINE batch_bool<T, A> neq (batch_bool<T, A> const & x, batch_bool<T, A> const & y) noexcept
16901690 {
16911691 detail::static_check_supported_config<T, A>();
16921692 return x != y;
@@ -2572,7 +2572,7 @@ namespace xsimd
25722572 * @return the difference between \c x and \c y
25732573 */
25742574 template <class T , class A >
2575- XSIMD_INLINE auto sub (batch<T, A> const & x, batch<T, A> const & y) noexcept -> decltype(x - y)
2575+ XSIMD_INLINE batch<T, A> sub (batch<T, A> const & x, batch<T, A> const & y) noexcept
25762576 {
25772577 detail::static_check_supported_config<T, A>();
25782578 return x - y;
0 commit comments