Range-v3
Range algorithms, views, and actions for the Standard Library
move.hpp File Reference

Classes

struct  ranges::v3::aux::move_fn
 
struct  ranges::v3::is_indirectly_movable< I, O >
 
struct  ranges::v3::is_nothrow_indirectly_movable< I, O >
 

Typedefs

template<typename R >
using ranges::v3::aux::move_t = meta::if_< std::is_reference< R >, meta::_t< std::remove_reference< R >> &&, detail::decay_t< R >>
 

Functions

template<typename I , typename O >
std::false_type ranges::v3::detail::is_indirectly_movable_ (long)
 
template<typename I , typename O >
std::false_type ranges::v3::detail::is_nothrow_indirectly_movable_ (long)
 
template<typename T >
meta::_t< std::remove_reference< T > > && ranges::v3::aux::operator| (T &&t, move_fn move) noexcept
 

Variables

constexpr adl_move_detail::indirect_move_fn ranges::v3::indirect_move {}
 
template<typename I , typename O >
meta::and_< std::is_constructible< meta::_t< value_type< I > >, decltype(indirect_move(std::declval< I & >)))>, std::is_assignable< decltype(*std::declval< O & >)), decltype(indirect_move(std::declval< I & >)))> > ranges::v3::detail::is_indirectly_movable_ (int)
 
template<typename I , typename O >
meta::and_< std::is_nothrow_constructible< meta::_t< value_type< I > >, decltype(indirect_move(std::declval< I & >)))>, std::is_nothrow_assignable< decltype(*std::declval< O & >)), decltype(indirect_move(std::declval< I & >)))> > ranges::v3::detail::is_nothrow_indirectly_movable_ (int)
 
constexpr move_fn ranges::v3::aux::move {}