Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/concepts/same as"

From cppreference.com
< cpp‎ | concepts
m (Added Spanish language link)
m (add russian lang link)
Line 26: Line 26:
 
{{dsc end }}
 
{{dsc end }}
  
{{langlinks|es|ja|zh}}
+
{{langlinks|es|ja|zh|ru}}

Revision as of 01:46, 27 April 2020

Defined in header <concepts>
template < class T, class U >
concept same_as = /* see below */;
(since C++20)

The concept same_as<T, U> is satisfied if and only if T and U denote the same type.

std::same_as<T, U> subsumes std::same_as<U, T> and vice versa.

Possible implementation

namespace detail {
    template< class T, class U >
    concept SameHelper = std::is_same_v<T, U>;
}
 
template< class T, class U >
concept same_as = detail::SameHelper<T, U> && detail::SameHelper<U, T>;

See also

(C++11)
checks if two types are the same
(class template) [edit]