#pragma once #if !defined(BAD_APPLE_OS_UTILITY_INCLUDED) #define BAD_APPLE_OS_UTILITY_INCLUDED #include namespace std { template constexpr remove_reference_t&& move(T&& val) noexcept { return static_cast&&>(val); } template constexpr void swap(T& first, T& second) { T temp = std::move(first); first = std::move(second); second = std::move(temp); } template [[nodiscard]] constexpr T&& forward(remove_reference_t& value) { return static_cast(value); } template [[nodiscard]] constexpr T exchange(T& obj, U&& newValue) { T oldValue = std::move(obj); obj = std::forward(newValue); return oldValue; } } #endif // !defined(BAD_APPLE_OS_UTILITY_INCLUDED)