From: paolo Date: Mon, 17 May 2010 10:19:31 +0000 (+0000) Subject: 2010-05-17 Paolo Carlini X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=776274ce5365282eb56797ba85a14102d09db061;p=thirdparty%2Fgcc.git 2010-05-17 Paolo Carlini * include/std/functional (result_of): Move... * include/std/type_traits: ... here. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error line number. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159478 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index ae20b119cf43..b0782ce18c9a 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2010-05-17 Paolo Carlini + + * 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 * 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 00b94940f247..7de7edfff9ab 100644 --- a/libstdc++-v3/include/std/functional +++ b/libstdc++-v3/include/std/functional @@ -169,17 +169,6 @@ namespace std : _Weak_result_type_impl::type> { }; - template - class result_of; - - template - struct result_of<_Functor(_ArgTypes...)> - { - typedef - decltype( std::declval<_Functor>()(std::declval<_ArgTypes>()...) ) - type; - }; - /// Determines if the type _Tp derives from unary_function. template struct _Derives_from_unary_function : __sfinae_types diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index a2748c565b15..9831851c4a54 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::type, _Vp...>::type type; }; - // @} group metaprogramming /// declval template @@ -656,6 +655,20 @@ namespace std "declval() must not be used!"); return __declval_protector<_Tp>::__delegate(); } + + /// result_of + template + class result_of; + + template + 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 bd424788dfb5..c3b5022f77a1 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 // . -// { 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" }