From: Patrick Palka Date: Wed, 7 Sep 2022 14:21:51 +0000 (-0400) Subject: libstdc++: Optimize is_reference X-Git-Tag: basepoints/gcc-14~4684 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cdcc27c1ca9c485c66ac1914e352c79e5048b6b5;p=thirdparty%2Fgcc.git libstdc++: Optimize is_reference Instead of defining is_reference in terms of is_[lr]value_reference, just define it directly. libstdc++-v3/ChangeLog: * include/std/type_traits (is_reference): Make the primary template derive from false_type. Define two partial specializations that derive from true_type. --- diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index b83e7257a9f3..94e73eafd2fb 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -611,8 +611,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// is_reference template struct is_reference - : public __or_, - is_rvalue_reference<_Tp>>::type + : public false_type + { }; + + template + struct is_reference<_Tp&> + : public true_type + { }; + + template + struct is_reference<_Tp&&> + : public true_type { }; /// is_arithmetic