diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 03972e03370..f09d71ec1ce 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2007-10-09 Paolo Carlini + + * include/tr1_impl/type_traitsfwd.h (add_reference): Remove. + * include/tr1/type_traits (add_reference): Add forward declaration. + * include/tr1_impl/functional (class _Mu<>): Fix. + 2007-10-09 Paolo Carlini * include/bits/boost_concept_check.h (*AssociativeContainerConcept): diff --git a/libstdc++-v3/include/tr1/type_traits b/libstdc++-v3/include/tr1/type_traits index be73fe77460..c8376ad02aa 100644 --- a/libstdc++-v3/include/tr1/type_traits +++ b/libstdc++-v3/include/tr1/type_traits @@ -170,6 +170,9 @@ namespace tr1 static const bool __value = sizeof(__test(__makeFrom())) == 1; }; + template + struct add_reference; + template struct __is_int_or_cref { diff --git a/libstdc++-v3/include/tr1_impl/functional b/libstdc++-v3/include/tr1_impl/functional index 0005dfcc0d0..3c3e18aa937 100644 --- a/libstdc++-v3/include/tr1_impl/functional +++ b/libstdc++-v3/include/tr1_impl/functional @@ -1149,7 +1149,11 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 __base_type; public: +#ifdef _GLIBCXX_INCLUDE_AS_CXX0X + typedef typename add_lvalue_reference<__base_type>::type type; +#else typedef typename add_reference<__base_type>::type type; +#endif }; template @@ -1177,7 +1181,11 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 template struct result<_CVMu(_CVArg, _Tuple)> { +#ifdef _GLIBCXX_INCLUDE_AS_CXX0X + typedef typename add_lvalue_reference<_CVArg>::type type; +#else typedef typename add_reference<_CVArg>::type type; +#endif }; // Pick up the cv-qualifiers of the argument diff --git a/libstdc++-v3/include/tr1_impl/type_traitsfwd.h b/libstdc++-v3/include/tr1_impl/type_traitsfwd.h index 63db0cb8f6d..558f110dc4a 100644 --- a/libstdc++-v3/include/tr1_impl/type_traitsfwd.h +++ b/libstdc++-v3/include/tr1_impl/type_traitsfwd.h @@ -153,9 +153,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 template struct remove_reference; - template - struct add_reference; - /// @brief array modifications [4.7.3]. template struct remove_extent;