[libc++] Avoid instantiating type_trait classes
Use `using` aliases to avoid instantiating lots of types
Reviewed By: ldionne, #libc
Spies: libcxx-commits, miyuki
Differential Revision: https://reviews.llvm.org/D132785
NOKEYCHECK=True
GitOrigin-RevId: 5fab33af7f083a0043112742027172e9f297c07f
diff --git a/include/valarray b/include/valarray
index ff745d3..e0f0753 100644
--- a/include/valarray
+++ b/include/valarray
@@ -684,7 +684,7 @@
template <class _ValExpr>
class __slice_expr
{
- typedef typename remove_reference<_ValExpr>::type _RmExpr;
+ typedef __libcpp_remove_reference_t<_ValExpr> _RmExpr;
public:
typedef typename _RmExpr::value_type value_type;
typedef value_type __result_type;
@@ -724,7 +724,7 @@
template <class _ValExpr>
class __shift_expr
{
- typedef typename remove_reference<_ValExpr>::type _RmExpr;
+ typedef __libcpp_remove_reference_t<_ValExpr> _RmExpr;
public:
typedef typename _RmExpr::value_type value_type;
typedef value_type __result_type;
@@ -767,7 +767,7 @@
template <class _ValExpr>
class __cshift_expr
{
- typedef typename remove_reference<_ValExpr>::type _RmExpr;
+ typedef __libcpp_remove_reference_t<_ValExpr> _RmExpr;
public:
typedef typename _RmExpr::value_type value_type;
typedef value_type __result_type;
@@ -2242,7 +2242,7 @@
template <class _ValExpr>
class __mask_expr
{
- typedef typename remove_reference<_ValExpr>::type _RmExpr;
+ typedef __libcpp_remove_reference_t<_ValExpr> _RmExpr;
public:
typedef typename _RmExpr::value_type value_type;
typedef value_type __result_type;
@@ -2605,7 +2605,7 @@
template <class _ValExpr>
class __indirect_expr
{
- typedef typename remove_reference<_ValExpr>::type _RmExpr;
+ typedef __libcpp_remove_reference_t<_ValExpr> _RmExpr;
public:
typedef typename _RmExpr::value_type value_type;
typedef value_type __result_type;
@@ -2645,7 +2645,7 @@
template<class _ValExpr>
class __val_expr
{
- typedef typename remove_reference<_ValExpr>::type _RmExpr;
+ typedef __libcpp_remove_reference_t<_ValExpr> _RmExpr;
_ValExpr __expr_;
public: