std::common_with Concept Reference

`#include <concepts>`

## Concept definition

template<typename _Tp, typename _Up>
concept std::common_with = same_as<common_type_t<_Tp, _Up>, common_type_t<_Up, _Tp>>
&& requires {
static_cast<common_type_t<_Tp, _Up>>(std::declval<_Tp>());
static_cast<common_type_t<_Tp, _Up>>(std::declval<_Up>());
}
&& common_reference_with<add_lvalue_reference_t<const _Tp>,
add_lvalue_reference_t<const _Up>>
&& common_reference_with<add_lvalue_reference_t<common_type_t<_Tp, _Up>>,
common_reference_t<
add_lvalue_reference_t<const _Tp>,
add_lvalue_reference_t<const _Up>>>
std::add_lvalue_reference_t
typename add_lvalue_reference< _Tp >::type add_lvalue_reference_t
Alias template for add_lvalue_reference.
Definition type_traits:1642
std::common_type_t
typename common_type< _Tp... >::type common_type_t
Alias template for common_type.
Definition type_traits:2620
std::declval
auto declval() noexcept -> decltype(__declval< _Tp >(0))
Definition type_traits:2384
std::same_as
[concept.same], concept same_as
Definition concepts:63
std::common_reference_with
[concept.commonref], concept common_reference_with
Definition concepts:78
std::common_with
[concept.common], concept common_with
Definition concepts:85

## Detailed Description

[concept.common], concept common_with

Definition at line 84 of file concepts.