std::experimental::ranges::Same
From cppreference.com
                    
                                        
                    < cpp | experimental | ranges
                    
                                                            
                    | Defined in header  <experimental/ranges/concepts> | ||
| template < class T, class U > concept bool Same() { return /* see below */; } | (ranges TS) | |
The concept Same<T, U>() is satisfied if and only if T and U denote the same type.
For the purposes of constraint checking, Same<T, U>() implies Same<U, T>().
[edit] Notes
The additional requirement on constraint checking differentiates Same from std::is_same, and will typically require a compiler intrinsic to implement.
[edit] See also
| (C++11) | checks if two types are the same (class template) | 


