# std::experimental::ranges::Common

From cppreference.com
< cpp‎ | experimental‎ | ranges

Defined in header `<experimental/ranges/concepts>` |  |

template <class T, class U>

concept bool Common() {
return ranges::CommonReference<const T&, const U&>()
&& requires(T (&t)(), U (&u)()) {
typename std::common_type_t<T, U>;
typename std::common_type_t<U, T>;
requires ranges::Same<std::common_type_t<U, T>, std::common_type_t<T, U>>();
std::common_type_t<T, U>(t());
std::common_type_t<T, U>(u());
requires ranges::CommonReference<
std::add_lvalue_reference_t<std::common_type_t<T, U>>,
std::common_reference_t<std::add_lvalue_reference_t<const T>,
std::add_lvalue_reference_t<const U>>>();
};

}

(ranges TS)

| This section is incomplete Reason: add description and extra caveats

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/concepts/Common&oldid=89703"
Category:

- Todo with reason