File tree 2 files changed +13
-13
lines changed
libcxx/include/__type_traits
2 files changed +13
-13
lines changed Original file line number Diff line number Diff line change 19
19
20
20
_LIBCPP_BEGIN_NAMESPACE_STD
21
21
22
- #if __has_builtin(__remove_cv) && !defined(_LIBCPP_COMPILER_GCC)
23
22
template <class _Tp >
24
23
struct remove_cv {
25
24
using type _LIBCPP_NODEBUG = __remove_cv(_Tp);
26
25
};
27
26
27
+ #if defined(_LIBCPP_COMPILER_GCC)
28
28
template <class _Tp >
29
- using __remove_cv_t = __remove_cv( _Tp) ;
29
+ using __remove_cv_t = typename remove_cv< _Tp>::type ;
30
30
#else
31
31
template <class _Tp >
32
- struct _LIBCPP_TEMPLATE_VIS remove_cv {
33
- typedef __remove_volatile_t <__remove_const_t <_Tp> > type;
34
- };
35
-
36
- template <class _Tp >
37
- using __remove_cv_t = __remove_volatile_t <__remove_const_t <_Tp> >;
32
+ using __remove_cv_t = __remove_cv(_Tp);
38
33
#endif // __has_builtin(__remove_cv)
39
34
40
35
#if _LIBCPP_STD_VER >= 14
Original file line number Diff line number Diff line change 20
20
21
21
_LIBCPP_BEGIN_NAMESPACE_STD
22
22
23
- #if __has_builtin(__remove_cvref) && ! defined(_LIBCPP_COMPILER_GCC)
23
+ #if defined(_LIBCPP_COMPILER_GCC)
24
24
template <class _Tp >
25
- using __remove_cvref_t _LIBCPP_NODEBUG = __remove_cvref(_Tp);
25
+ struct __remove_cvref_gcc {
26
+ using type = __remove_cvref(_Tp);
27
+ };
28
+
29
+ template <class _Tp >
30
+ using __remove_cvref_t _LIBCPP_NODEBUG = __remove_cvref_gcc<_Tp>::type;
26
31
#else
27
32
template <class _Tp >
28
- using __remove_cvref_t _LIBCPP_NODEBUG = __remove_cv_t < __libcpp_remove_reference_t < _Tp> > ;
33
+ using __remove_cvref_t _LIBCPP_NODEBUG = __remove_cvref( _Tp) ;
29
34
#endif // __has_builtin(__remove_cvref)
30
35
31
36
template <class _Tp , class _Up >
32
- struct __is_same_uncvref : _IsSame<__remove_cvref_t <_Tp>, __remove_cvref_t <_Up> > {} ;
37
+ using __is_same_uncvref = _IsSame<__remove_cvref_t <_Tp>, __remove_cvref_t <_Up> >;
33
38
34
39
#if _LIBCPP_STD_VER >= 20
35
40
template <class _Tp >
36
41
struct remove_cvref {
37
- using type _LIBCPP_NODEBUG = __remove_cvref_t < _Tp> ;
42
+ using type _LIBCPP_NODEBUG = __remove_cvref( _Tp) ;
38
43
};
39
44
40
45
template <class _Tp >
You can’t perform that action at this time.
0 commit comments