From 6b14c6d7ffc25b92aeea21f0c0c050582d3ed771 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Tue, 14 Jun 2011 15:09:14 +0000 Subject: [PATCH] functional: Use noexcept. 2011-06-14 Paolo Carlini * include/std/functional: Use noexcept. * include/bits/stl_tempbuf.h: Likewise. From-SVN: r175026 --- libstdc++-v3/ChangeLog | 5 +++ libstdc++-v3/include/bits/stl_tempbuf.h | 5 ++- libstdc++-v3/include/std/functional | 50 +++++++++++++------------ 3 files changed, 34 insertions(+), 26 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 9462c08c15d..ebe9f200cd8 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2011-06-14 Paolo Carlini + + * include/std/functional: Use noexcept. + * include/bits/stl_tempbuf.h: Likewise. + 2011-06-12 François Dumont Paolo Carlini diff --git a/libstdc++-v3/include/bits/stl_tempbuf.h b/libstdc++-v3/include/bits/stl_tempbuf.h index a99dac93095..c4b0ddd5715 100644 --- a/libstdc++-v3/include/bits/stl_tempbuf.h +++ b/libstdc++-v3/include/bits/stl_tempbuf.h @@ -1,6 +1,7 @@ // Temporary buffer implementation -*- C++ -*- -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, +// 2010, 2011 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -83,7 +84,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION */ template pair<_Tp*, ptrdiff_t> - get_temporary_buffer(ptrdiff_t __len) + get_temporary_buffer(ptrdiff_t __len) _GLIBCXX_NOEXCEPT { const ptrdiff_t __max = __gnu_cxx::__numeric_traits::__max / sizeof(_Tp); diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional index 0126510ce24..85df22017f6 100644 --- a/libstdc++-v3/include/std/functional +++ b/libstdc++-v3/include/std/functional @@ -437,28 +437,28 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) public: typedef _Tp type; - reference_wrapper(_Tp& __indata) + reference_wrapper(_Tp& __indata) noexcept : _M_data(std::__addressof(__indata)) { } reference_wrapper(_Tp&&) = delete; - reference_wrapper(const reference_wrapper<_Tp>& __inref): - _M_data(__inref._M_data) + reference_wrapper(const reference_wrapper<_Tp>& __inref) noexcept + : _M_data(__inref._M_data) { } reference_wrapper& - operator=(const reference_wrapper<_Tp>& __inref) + operator=(const reference_wrapper<_Tp>& __inref) noexcept { _M_data = __inref._M_data; return *this; } - operator _Tp&() const + operator _Tp&() const noexcept { return this->get(); } _Tp& - get() const + get() const noexcept { return *_M_data; } template @@ -473,13 +473,13 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) /// Denotes a reference should be taken to a variable. template inline reference_wrapper<_Tp> - ref(_Tp& __t) + ref(_Tp& __t) noexcept { return reference_wrapper<_Tp>(__t); } /// Denotes a const reference should be taken to a variable. template inline reference_wrapper - cref(const _Tp& __t) + cref(const _Tp& __t) noexcept { return reference_wrapper(__t); } template @@ -491,13 +491,13 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) /// Partial specialization. template inline reference_wrapper<_Tp> - ref(reference_wrapper<_Tp> __t) + ref(reference_wrapper<_Tp> __t) noexcept { return ref(__t.get()); } /// Partial specialization. template inline reference_wrapper - cref(reference_wrapper<_Tp> __t) + cref(reference_wrapper<_Tp> __t) noexcept { return cref(__t.get()); } // @} group functors @@ -1913,13 +1913,15 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) * @brief Default construct creates an empty function call wrapper. * @post @c !(bool)*this */ - function() : _Function_base() { } + function() noexcept + : _Function_base() { } /** * @brief Creates an empty function call wrapper. * @post @c !(bool)*this */ - function(nullptr_t) : _Function_base() { } + function(nullptr_t) noexcept + : _Function_base() { } /** * @brief %Function copy constructor. @@ -2050,7 +2052,7 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) /// @overload template typename enable_if::value, function&>::type - operator=(reference_wrapper<_Functor> __f) + operator=(reference_wrapper<_Functor> __f) noexcept { function(__f).swap(*this); return *this; @@ -2093,7 +2095,7 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) * * This function will not throw an %exception. */ - explicit operator bool() const + explicit operator bool() const noexcept { return !_M_empty(); } // [3.7.2.4] function invocation @@ -2119,7 +2121,7 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) * * This function will not throw an %exception. */ - const type_info& target_type() const; + const type_info& target_type() const noexcept; /** * @brief Access the stored target function object. @@ -2130,10 +2132,10 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) * * This function will not throw an %exception. */ - template _Functor* target(); + template _Functor* target() noexcept; /// @overload - template const _Functor* target() const; + template const _Functor* target() const noexcept; #endif private: @@ -2187,7 +2189,7 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) template const type_info& function<_Res(_ArgTypes...)>:: - target_type() const + target_type() const noexcept { if (_M_manager) { @@ -2203,7 +2205,7 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) template _Functor* function<_Res(_ArgTypes...)>:: - target() + target() noexcept { if (typeid(_Functor) == target_type() && _M_manager) { @@ -2222,7 +2224,7 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) template const _Functor* function<_Res(_ArgTypes...)>:: - target() const + target() const noexcept { if (typeid(_Functor) == target_type() && _M_manager) { @@ -2246,13 +2248,13 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) */ template inline bool - operator==(const function<_Res(_Args...)>& __f, nullptr_t) + operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept { return !static_cast(__f); } /// @overload template inline bool - operator==(nullptr_t, const function<_Res(_Args...)>& __f) + operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept { return !static_cast(__f); } /** @@ -2264,13 +2266,13 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type) */ template inline bool - operator!=(const function<_Res(_Args...)>& __f, nullptr_t) + operator!=(const function<_Res(_Args...)>& __f, nullptr_t) noexcept { return static_cast(__f); } /// @overload template inline bool - operator!=(nullptr_t, const function<_Res(_Args...)>& __f) + operator!=(nullptr_t, const function<_Res(_Args...)>& __f) noexcept { return static_cast(__f); } // [20.7.15.2.7] specialized algorithms -- 2.30.2