std::basic_common_reference<tuple-like>
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header  <tuple>
  | 
||
|   template< tuple-like TTuple, tuple-like UTuple,           template<class> class TQual, template<class> class UQual >  | 
(since C++23) | |
The common reference type of two tuple-like types is a std::tuple consists of the common reference types of all corresponding element type pairs of both types, where the cv and reference qualifiers on the tuple-like types are applied to their element types.
Given
-  
TTypesas the pack formed by the sequence of std::tuple_element_t<i, TTuple> for every integer i in[0,std::tuple_size_v<TTuple>), and -  
UTypesas the pack formed by the sequence of std::tuple_element_t<i, UTuple> for every integer i in[0,std::tuple_size_v<UTuple>), 
the following constraints need to be satisfied:
-  
TTupleorUTupleis a std::tuple specialization. - std::is_same_v<TTuple, std::decay_t<TTuple>> is true.
 - std::is_same_v<UTuple, std::decay_t<UTuple>> is true.
 -  std::tuple_size_v<TTuple> equals std::tuple_size_v<UTuple> (
TTupleandUTuplehave the same number of elements). - std::tuple<std::common_reference_t<TQual<TTypes>..., UQual<UTypes>>...> denotes a type.
 
Member types
| Member type | Definition | 
 type
 | 
std::tuple<std::common_reference_t<TQual<TTypes>..., UQual<UTypes>>...> | 
Example
| This section is incomplete Reason: no example  | 
See also
|    determines the common reference type of a group of types   (class template)  | |
  determines the common reference type of two pairs (class template specialization)  |