This implements the new type trait common_ref that is needed for library concepts support
Fair. I'd at least encourage the use of a _requires-clause_, since it's demonstrably faster to compile than SFINAE and is being commit for the first time to a concepts-aware compiler.
That sounds reasonable. However, someone could theoretically use a C++20 compiler (aka clang 9) without concept support and that would lead to <type_traits> not compiling.
On the other hand I think that is a very bad use case that should not be suported. Maintainers thoughts?