|
template<typename T , typename U , meta::if_< std::is_same< uncvref_t< T >, uncvref_t< U >>, int > = 0> |
auto | requires_ (T &&, U &&) -> void |
|
template<typename T , typename U , meta::if_c<!std::is_same< uncvref_t< T >, uncvref_t< U >>::value, int > = 0, typename C = value_t<T, U>, typename R = CommonReference::reference_t<T const &, U const &>> |
auto | requires_ (T &&, U &&) -> decltype( concepts::valid_expr( concepts::model_of< Same, C, value_t< U, T >>(), C(val< T && >()), C(val< U && >()), concepts::model_of< CommonReference, T const &, U const & >(), concepts::model_of< CommonReference, C &, R && >() )) |
|
template<typename T , typename U , typename... Rest, typename Common_ = Common, typename C = value_t<T, U>> |
auto | requires_ (T &&, U &&, Rest &&...) -> decltype( concepts::valid_expr( concepts::model_of< Common_, T, U >(), concepts::model_of< Common_, C, Rest... >() )) |
|