27 lines
459 B
Plaintext
27 lines
459 B
Plaintext
#pragma once
|
|
|
|
#include <AH/Settings/NamespaceSettings.hpp>
|
|
|
|
#ifdef __AVR__
|
|
#include <AH/Arduino-Wrapper.h>
|
|
|
|
#include "Fallback/utility"
|
|
#else
|
|
#include <utility>
|
|
#endif
|
|
|
|
namespace std {
|
|
|
|
#if __cplusplus < 201402L
|
|
|
|
/// https://en.cppreference.com/w/cpp/utility/exchange
|
|
template <class T, class U = T>
|
|
T exchange(T &obj, U &&new_value) {
|
|
T old_value = std::move(obj);
|
|
obj = std::forward<U>(new_value);
|
|
return old_value;
|
|
}
|
|
|
|
#endif
|
|
|
|
} // namespace std |