diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2015-12-15 14:17:17 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2015-12-15 14:17:17 +0000 |
commit | 6666731254089eadcc09361ff815d0de80516c6d (patch) | |
tree | 0a5cb6699d130b249c2d67f5e877e85e97f25fca /libstdc++-v3/include/std/functional | |
parent | 5c036f3f0a3ca5980709c385477e0b0af1dbcd30 (diff) | |
download | gcc-6666731254089eadcc09361ff815d0de80516c6d.zip gcc-6666731254089eadcc09361ff815d0de80516c6d.tar.gz gcc-6666731254089eadcc09361ff815d0de80516c6d.tar.bz2 |
Fix cv-qualifiers in std::bind invocation
PR libstdc++/68912
* include/std/functional (_Bind::operator()): Use lvalue functor to
deduce return type.
* testsuite/20_util/bind/68912.cc: New.
From-SVN: r231652
Diffstat (limited to 'libstdc++-v3/include/std/functional')
-rw-r--r-- | libstdc++-v3/include/std/functional | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional index 19caa96..8d39d62 100644 --- a/libstdc++-v3/include/std/functional +++ b/libstdc++-v3/include/std/functional @@ -1034,7 +1034,7 @@ _GLIBCXX_MEM_FN_TRAITS(&&, false_type, true_type) // Call unqualified template<typename... _Args, typename _Result - = decltype( std::declval<_Functor>()( + = decltype( std::declval<_Functor&>()( _Mu<_Bound_args>()( std::declval<_Bound_args&>(), std::declval<tuple<_Args...>&>() )... ) )> _Result @@ -1048,7 +1048,7 @@ _GLIBCXX_MEM_FN_TRAITS(&&, false_type, true_type) // Call as const template<typename... _Args, typename _Result = decltype( std::declval<typename enable_if<(sizeof...(_Args) >= 0), - typename add_const<_Functor>::type>::type>()( + typename add_const<_Functor>::type&>::type>()( _Mu<_Bound_args>()( std::declval<const _Bound_args&>(), std::declval<tuple<_Args...>&>() )... ) )> _Result @@ -1062,7 +1062,7 @@ _GLIBCXX_MEM_FN_TRAITS(&&, false_type, true_type) // Call as volatile template<typename... _Args, typename _Result = decltype( std::declval<typename enable_if<(sizeof...(_Args) >= 0), - typename add_volatile<_Functor>::type>::type>()( + typename add_volatile<_Functor>::type&>::type>()( _Mu<_Bound_args>()( std::declval<volatile _Bound_args&>(), std::declval<tuple<_Args...>&>() )... ) )> _Result @@ -1076,7 +1076,7 @@ _GLIBCXX_MEM_FN_TRAITS(&&, false_type, true_type) // Call as const volatile template<typename... _Args, typename _Result = decltype( std::declval<typename enable_if<(sizeof...(_Args) >= 0), - typename add_cv<_Functor>::type>::type>()( + typename add_cv<_Functor>::type&>::type>()( _Mu<_Bound_args>()( std::declval<const volatile _Bound_args&>(), std::declval<tuple<_Args...>&>() )... ) )> _Result |