template<class T>
concept movable = is_Âobject_Âv<T> && move_Âconstructible<T> &&
assignable_Âfrom<T&, T> && swappable<T>;
template<class T>
concept copyable = copy_Âconstructible<T> && movable<T> && assignable_Âfrom<T&, T&> &&
assignable_Âfrom<T&, const T&> && assignable_Âfrom<T&, const T>;
template<class T>
concept semiregular = copyable<T> && default_Âinitializable<T>;
template<class T>
concept regular = semiregular<T> && equality_Âcomparable<T>;