is_value_swappable

Description

Checks if T two objects of type T can be dereferenced and the resulting values satisify is_swappable.

Requirements

Type T satisfies is_value_swappable if

  • Type T satisfies the requirements for is_iterator
  • For any dereferencable object x of type T, *x satisfies the requirements for is_swappable

Synopsis

TICK_TRAIT(is_value_swappable, is_iterator<_>)
{
    template<class T>
    auto require(T&&) -> valid<
        is_true<is_swappable<typename iterator_traits<T>::value_type>>
    >;
};