std::experimental::ranges::Common

Header: <experimental/ranges/concepts>

The concept Common<T, U> specifies that two types T and U share a common type (as computed by ranges::common_type_t) to which both can be converted.

# Declarations

template< class T, class U >
concept bool Common =
Same<ranges::common_type_t<T, U>, ranges::common_type_t<U, T>> &&
ConvertibleTo<T, ranges::common_type_t<T, U>> &&
ConvertibleTo<U, ranges::common_type_t<T, U>> &&
CommonReference<
std::add_lvalue_reference_t<const T>,
std::add_lvalue_reference_t<const U>> &&
CommonReference<
std::add_lvalue_reference_t<ranges::common_type_t<T, U>>,
ranges::common_reference_t<
std::add_lvalue_reference_t<const T>,
std::add_lvalue_reference_t<const U>>>;

(ranges TS)

# See also