std::experimental::ranges::Common
Min standard notice:
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)