From 383d933f5323830e3f38c13a49c9c363ea73bced Mon Sep 17 00:00:00 2001 From: Lukas Tenbrink Date: Fri, 13 Dec 2024 16:12:26 +0100 Subject: [PATCH] Optimize `SWAP` macro by using move semantics. --- core/typedefs.h | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/core/typedefs.h b/core/typedefs.h index 35c4668581b..b5b44f21691 100644 --- a/core/typedefs.h +++ b/core/typedefs.h @@ -43,6 +43,7 @@ // Should be available everywhere. #include "core/error/error_list.h" #include +#include // Ensure that C++ standard is at least C++17. If on MSVC, also ensures that the `Zc:__cplusplus` flag is present. static_assert(__cplusplus >= 201703L); @@ -129,13 +130,7 @@ constexpr auto CLAMP(const T m_a, const T2 m_min, const T3 m_max) { // Generic swap template. #ifndef SWAP -#define SWAP(m_x, m_y) __swap_tmpl((m_x), (m_y)) -template -inline void __swap_tmpl(T &x, T &y) { - T aux = x; - x = y; - y = aux; -} +#define SWAP(m_x, m_y) std::swap((m_x), (m_y)) #endif // SWAP /* Functions to handle powers of 2 and shifting. */