diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 68154d175b4118e160db4227ff6bfeaf5ba4770b..98bf0c5551d218560e6434975e71ba6ce61fc8a9 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2009-03-14 Paolo Carlini <paolo.carlini@oracle.com> + + * include/std/type_traits (__add_lvalue_reference_helper, + __add_rvalue_reference_helper): As an optimization, rewrite + condition (avoid is_function). + 2009-03-13 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/39405 diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index 132a92459e3d17f36c784ec66eedb40447ae0816..130d504d90302f13645433a39e51f930435d84e2 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -111,7 +111,7 @@ namespace std { typedef _Tp type; }; template<typename _Tp, - bool = is_object<_Tp>::value || is_function<_Tp>::value, + bool = !is_reference<_Tp>::value && !is_void<_Tp>::value, bool = is_rvalue_reference<_Tp>::value> struct __add_lvalue_reference_helper { typedef _Tp type; }; @@ -131,7 +131,7 @@ namespace std { }; template<typename _Tp, - bool = is_object<_Tp>::value || is_function<_Tp>::value> + bool = !is_reference<_Tp>::value && !is_void<_Tp>::value> struct __add_rvalue_reference_helper { typedef _Tp type; };