codekingpro/portable-devtools
114k
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6// SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES.7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCUDACXX___CONCEPTS_SAME_AS_H11#define _LIBCUDACXX___CONCEPTS_SAME_AS_H12 13#ifndef __cuda_std__14#include <__config>15#endif //__cuda_std__16 17#include "../__concepts/__concept_macros.h"18#include "../__type_traits/is_same.h"19 20#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)21# pragma GCC system_header22#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)23# pragma clang system_header24#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)25# pragma system_header26#endif // no system header27 28_LIBCUDACXX_BEGIN_NAMESPACE_STD29 30#if _LIBCUDACXX_STD_VER > 1131 32// [concept.same]33 34template<class _Tp, class _Up>35_LIBCUDACXX_CONCEPT __same_as_impl = _IsSame<_Tp, _Up>::value;36 37template<class _Tp, class _Up>38_LIBCUDACXX_CONCEPT same_as = __same_as_impl<_Tp, _Up> && __same_as_impl<_Up, _Tp>;39 40#endif // _LIBCUDACXX_STD_VER > 1141 42_LIBCUDACXX_END_NAMESPACE_STD43 44#endif // _LIBCUDACXX___CONCEPTS_SAME_AS_H45 