diff options
author | robot-contrib <robot-contrib@yandex-team.com> | 2023-04-29 08:56:13 +0300 |
---|---|---|
committer | robot-contrib <robot-contrib@yandex-team.com> | 2023-04-29 08:56:13 +0300 |
commit | 8721a3c0d16b7c607eb00bf95c6d0a676e6f15ca (patch) | |
tree | 92d034e91464b0c9a01cc29c8f528828da6bd771 /contrib/restricted/boost/core | |
parent | 9b611a5dbbc1d348fbaf973636730d4e71d8c6a9 (diff) | |
download | ydb-8721a3c0d16b7c607eb00bf95c6d0a676e6f15ca.tar.gz |
Update contrib/restricted/boost/locale to 1.82.0
Diffstat (limited to 'contrib/restricted/boost/core')
-rw-r--r-- | contrib/restricted/boost/core/include/boost/core/exchange.hpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/contrib/restricted/boost/core/include/boost/core/exchange.hpp b/contrib/restricted/boost/core/include/boost/core/exchange.hpp new file mode 100644 index 0000000000..bc8a9fcd70 --- /dev/null +++ b/contrib/restricted/boost/core/include/boost/core/exchange.hpp @@ -0,0 +1,49 @@ +/* +Copyright 2018 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_CORE_EXCHANGE_HPP +#define BOOST_CORE_EXCHANGE_HPP + +#include <boost/config.hpp> +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +#include <boost/config/workaround.hpp> +#include <utility> +#endif + +namespace boost { + +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +template<class T, class U> +inline T exchange(T& t, const U& u) +{ + T v = t; + t = u; + return v; +} +#else +#if BOOST_WORKAROUND(BOOST_MSVC, < 1800) +template<class T, class U> +inline T exchange(T& t, U&& u) +{ + T v = std::move(t); + t = std::forward<U>(u); + return v; +} +#else +template<class T, class U = T> +BOOST_CXX14_CONSTEXPR inline T exchange(T& t, U&& u) +{ + T v = std::move(t); + t = std::forward<U>(u); + return v; +} +#endif +#endif + +} /* boost */ + +#endif |