# std::same_as

< cpp‎ | concepts

定义于头文件 `<concepts>` |  |
template < class T, class U > concept same_as = /* see below */; |  | (C++20 起)

概念 `same_as<T, U>` 若且唯若 `T` 与 `U` 代表同一类型才得到满足。

std::same_as<T, U> 包含 std::same_as<U, T> ，反之亦然。

### 可能的实现

    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>;

### 参阅

is_same (C++11) | 检查两个类型是否相同 (类模板)