Horizon
Loading...
Searching...
No Matches
Classes | Macros | Functions
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; \
} \