Horizon
Loading...
Searching...
No Matches
swap.hpp File Reference
#include <tuple>
#include <utility>
#include <type_traits>
#include <meta/meta.hpp>

Go to the source code of this file.

Classes

struct  concepts::is_swappable_with< T, U >
struct  concepts::is_nothrow_swappable_with< T, U >
struct  concepts::is_swappable< T >
struct  concepts::is_nothrow_swappable< T >

Macros

#define CPP_CXX14_CONSTEXPR   inline
#define CPP_CXX_INLINE_VARIABLES   __cplusplus
#define CPP_INLINE_VAR
#define CPP_INLINE_VARIABLE(type, name)
#define CPP_DEFINE_CPO(type, name)
#define CPP_DIAGNOSTIC_PUSH
#define CPP_DIAGNOSTIC_POP
#define CPP_DIAGNOSTIC_IGNORE_INIT_LIST_LIFETIME
#define CPP_DIAGNOSTIC_IGNORE_FLOAT_EQUAL
#define CPP_DIAGNOSTIC_IGNORE_CPP2A_COMPAT

Functions

template<typename T, typename U = T>
CPP_CXX14_CONSTEXPR meta::if_c< std::is_move_constructible< T >::value &&std::is_assignable< T &, U >::value, T > concepts::exchange (T &t, U &&u) noexcept(std::is_nothrow_move_constructible< T >::value &&std::is_nothrow_assignable< T &, U >::value)

Macro Definition Documentation

◆ CPP_DEFINE_CPO

#define CPP_DEFINE_CPO ( type,
name )
Value:
inline namespace \
{ \
constexpr auto &name = ::concepts::detail::static_const<type>::value; \
} \

◆ CPP_INLINE_VARIABLE

#define CPP_INLINE_VARIABLE ( type,
name )
Value:
inline namespace \
{ \
constexpr auto &name = ::concepts::detail::static_const<type>::value; \
} \