cpp/utility/tuple/basic common reference

The common reference type of two types is a std 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 the following constraints need to be satisfied:
 * as the pack formed by the sequence of for every integer  in, and
 * as the pack formed by the sequence of for every integer  in ,
 * or is a std specialization.
 * is.
 * is.
 * equals ( and  have the same number of elements).
 * denotes a type.