#pragma once #include #ifdef __AVR__ #include #include "Fallback/utility" #else #include #endif namespace std { #if __cplusplus < 201402L /// https://en.cppreference.com/w/cpp/utility/exchange template T exchange(T &obj, U &&new_value) { T old_value = std::move(obj); obj = std::forward(new_value); return old_value; } #endif } // namespace std