aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/src
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely.gcc@gmail.com>2009-12-15 17:42:47 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2009-12-15 17:42:47 +0000
commitec903a9c42e640af51c771cb3a844283acdc566b (patch)
treec2f8524e3fae97a6caa54a748bb213d265ab2a11 /libstdc++-v3/src
parent2a71eb48e4348f8bc33f9b02e45fd69adbe66b9c (diff)
downloadgcc-ec903a9c42e640af51c771cb3a844283acdc566b.zip
gcc-ec903a9c42e640af51c771cb3a844283acdc566b.tar.gz
gcc-ec903a9c42e640af51c771cb3a844283acdc566b.tar.bz2
functional (function::function): Move construct target.
2009-12-15 Jonathan Wakely <jwakely.gcc@gmail.com> * include/std/functional (function::function): Move construct target. (function::operator=): Use perfect forwarding for argument. (function::operator()): Use new __throw_bad_function_call. * include/bits/functexcept.h (__throw_bad_function_call): Declare. * src/functexcept.cc (__throw_bad_function_call): Define. * config/abi/pre/gnu.ver: Add new symbol. * testsuite/20_util/function/cons/move_target.cc: New. * testsuite/20_util/function/assign/move_target.cc: New. From-SVN: r155261
Diffstat (limited to 'libstdc++-v3/src')
-rw-r--r--libstdc++-v3/src/functexcept.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/libstdc++-v3/src/functexcept.cc b/libstdc++-v3/src/functexcept.cc
index 352a6b7..d47eccb 100644
--- a/libstdc++-v3/src/functexcept.cc
+++ b/libstdc++-v3/src/functexcept.cc
@@ -29,6 +29,7 @@
#include <ios>
#include <system_error>
#include <future>
+#include <functional>
#ifdef _GLIBCXX_USE_NLS
# include <libintl.h>
@@ -104,6 +105,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
__throw_future_error(int __i)
{ throw future_error(future_errc(__i)); }
+ void
+ __throw_bad_function_call()
+ { throw bad_function_call(); }
#else
void
__throw_bad_exception(void)
@@ -169,6 +173,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
__throw_future_error(int)
{ std::abort(); }
+ void
+ __throw_bad_function_call()
+ { std::abort(); }
+
#endif //__EXCEPTIONS
_GLIBCXX_END_NAMESPACE