diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 7 | ||||
-rw-r--r-- | libstdc++-v3/include/std/functional | 11 | ||||
-rw-r--r-- | libstdc++-v3/include/std/type_traits | 15 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc | 2 |
4 files changed, 22 insertions, 13 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index ae20b11..b0782ce 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2010-05-17 Paolo Carlini <paolo.carlini@oracle.com> + + * include/std/functional (result_of): Move... + * include/std/type_traits: ... here. + * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error + line number. + 2010-05-12 Jason Merrill <jason@redhat.com> * testsuite/20_util/auto_ptr/assign_neg.cc: Expect template diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional index 00b9494..7de7edf 100644 --- a/libstdc++-v3/include/std/functional +++ b/libstdc++-v3/include/std/functional @@ -169,17 +169,6 @@ namespace std : _Weak_result_type_impl<typename remove_cv<_Functor>::type> { }; - template<typename _Signature> - class result_of; - - template<typename _Functor, typename... _ArgTypes> - struct result_of<_Functor(_ArgTypes...)> - { - typedef - decltype( std::declval<_Functor>()(std::declval<_ArgTypes>()...) ) - type; - }; - /// Determines if the type _Tp derives from unary_function. template<typename _Tp> struct _Derives_from_unary_function : __sfinae_types diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index a2748c5..9831851 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -638,7 +638,6 @@ namespace std typedef typename common_type<typename common_type<_Tp, _Up>::type, _Vp...>::type type; }; - // @} group metaprogramming /// declval template<typename _Tp> @@ -656,6 +655,20 @@ namespace std "declval() must not be used!"); return __declval_protector<_Tp>::__delegate(); } + + /// result_of + template<typename _Signature> + class result_of; + + template<typename _Functor, typename... _ArgTypes> + struct result_of<_Functor(_ArgTypes...)> + { + typedef + decltype( std::declval<_Functor>()(std::declval<_ArgTypes>()...) ) + type; + }; + + // @} group metaprogramming } #endif // __GXX_EXPERIMENTAL_CXX0X__ diff --git a/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc b/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc index bd42478..c3b5022 100644 --- a/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc +++ b/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc @@ -19,7 +19,7 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// { dg-error "static assertion failed" "" { target *-*-* } 655 } +// { dg-error "static assertion failed" "" { target *-*-* } 654 } // { dg-error "instantiated from here" "" { target *-*-* } 30 } // { dg-excess-errors "In function" } |