From c983454d300a3a1f11055c9dbfedf383a58f56ce Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Tue, 31 May 2011 15:34:58 +0000 Subject: [PATCH] noexcept for Chapter 22 [localization]. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132337 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/__locale | 66 ++++++++++++++--------------- include/locale | 10 ++--- src/locale.cpp | 106 +++++++++++++++++++++++------------------------ 3 files changed, 91 insertions(+), 91 deletions(-) diff --git a/include/__locale b/include/__locale index 099014fe..21a57347 100644 --- a/include/__locale +++ b/include/__locale @@ -27,7 +27,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD class locale; -template bool has_facet(const locale&) throw(); +template bool has_facet(const locale&) _NOEXCEPT; template const _Facet& use_facet(const locale&); class _LIBCPP_VISIBLE locale @@ -49,8 +49,8 @@ public: all = collate | ctype | monetary | numeric | time | messages; // construct/copy/destroy: - locale() throw(); - locale(const locale&) throw(); + locale() _NOEXCEPT; + locale(const locale&) _NOEXCEPT; explicit locale(const char*); explicit locale(const string&); locale(const locale&, const char*, category); @@ -59,9 +59,9 @@ public: _LIBCPP_INLINE_VISIBILITY locale(const locale&, _Facet*); locale(const locale&, const locale&, category); - ~locale() throw(); + ~locale(); - const locale& operator=(const locale&) throw(); + const locale& operator=(const locale&) _NOEXCEPT; template locale combine(const locale&) const; @@ -86,7 +86,7 @@ private: bool has_facet(id&) const; const facet* use_facet(id&) const; - template friend bool has_facet(const locale&) throw(); + template friend bool has_facet(const locale&) _NOEXCEPT; template friend const _Facet& use_facet(const locale&); }; @@ -146,7 +146,7 @@ locale::combine(const locale& __other) const template inline _LIBCPP_INLINE_VISIBILITY bool -has_facet(const locale& __l) throw() +has_facet(const locale& __l) _NOEXCEPT { return __l.has_facet(_Facet::id); } @@ -535,8 +535,8 @@ public: #else static const size_t table_size = 256; // FIXME: Don't hardcode this. #endif - _LIBCPP_ALWAYS_INLINE const mask* table() const throw() {return __tab_;} - static const mask* classic_table() throw(); + _LIBCPP_ALWAYS_INLINE const mask* table() const _NOEXCEPT {return __tab_;} + static const mask* classic_table() _NOEXCEPT; protected: ~ctype(); @@ -755,13 +755,13 @@ public: } _LIBCPP_ALWAYS_INLINE - int encoding() const throw() + int encoding() const _NOEXCEPT { return do_encoding(); } _LIBCPP_ALWAYS_INLINE - bool always_noconv() const throw() + bool always_noconv() const _NOEXCEPT { return do_always_noconv(); } @@ -773,7 +773,7 @@ public: } _LIBCPP_ALWAYS_INLINE - int max_length() const throw() + int max_length() const _NOEXCEPT { return do_max_length(); } @@ -795,10 +795,10 @@ protected: intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; virtual result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); + virtual int do_encoding() const _NOEXCEPT; + virtual bool do_always_noconv() const _NOEXCEPT; virtual int do_length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const; - virtual int do_max_length() const throw(); + virtual int do_max_length() const _NOEXCEPT; }; // template <> class codecvt @@ -840,13 +840,13 @@ public: } _LIBCPP_ALWAYS_INLINE - int encoding() const throw() + int encoding() const _NOEXCEPT { return do_encoding(); } _LIBCPP_ALWAYS_INLINE - bool always_noconv() const throw() + bool always_noconv() const _NOEXCEPT { return do_always_noconv(); } @@ -858,7 +858,7 @@ public: } _LIBCPP_ALWAYS_INLINE - int max_length() const throw() + int max_length() const _NOEXCEPT { return do_max_length(); } @@ -878,10 +878,10 @@ protected: intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; virtual result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); + virtual int do_encoding() const _NOEXCEPT; + virtual bool do_always_noconv() const _NOEXCEPT; virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; - virtual int do_max_length() const throw(); + virtual int do_max_length() const _NOEXCEPT; }; // template <> class codecvt @@ -924,13 +924,13 @@ public: } _LIBCPP_ALWAYS_INLINE - int encoding() const throw() + int encoding() const _NOEXCEPT { return do_encoding(); } _LIBCPP_ALWAYS_INLINE - bool always_noconv() const throw() + bool always_noconv() const _NOEXCEPT { return do_always_noconv(); } @@ -942,7 +942,7 @@ public: } _LIBCPP_ALWAYS_INLINE - int max_length() const throw() + int max_length() const _NOEXCEPT { return do_max_length(); } @@ -964,10 +964,10 @@ protected: intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; virtual result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); + virtual int do_encoding() const _NOEXCEPT; + virtual bool do_always_noconv() const _NOEXCEPT; virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; - virtual int do_max_length() const throw(); + virtual int do_max_length() const _NOEXCEPT; }; // template <> class codecvt @@ -1010,13 +1010,13 @@ public: } _LIBCPP_ALWAYS_INLINE - int encoding() const throw() + int encoding() const _NOEXCEPT { return do_encoding(); } _LIBCPP_ALWAYS_INLINE - bool always_noconv() const throw() + bool always_noconv() const _NOEXCEPT { return do_always_noconv(); } @@ -1028,7 +1028,7 @@ public: } _LIBCPP_ALWAYS_INLINE - int max_length() const throw() + int max_length() const _NOEXCEPT { return do_max_length(); } @@ -1050,10 +1050,10 @@ protected: intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; virtual result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; - virtual int do_encoding() const throw(); - virtual bool do_always_noconv() const throw(); + virtual int do_encoding() const _NOEXCEPT; + virtual bool do_always_noconv() const _NOEXCEPT; virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; - virtual int do_max_length() const throw(); + virtual int do_max_length() const _NOEXCEPT; }; // template class codecvt_byname diff --git a/include/locale b/include/locale index b07cb2d7..f9e849b1 100644 --- a/include/locale +++ b/include/locale @@ -36,8 +36,8 @@ public: all = collate | ctype | monetary | numeric | time | messages; // construct/copy/destroy: - locale() throw(); - locale(const locale& other) throw(); + locale() noexcept; + locale(const locale& other) noexcept; explicit locale(const char* std_name); explicit locale(const string& std_name); locale(const locale& other, const char* std_name, category); @@ -45,9 +45,9 @@ public: template locale(const locale& other, Facet* f); locale(const locale& other, const locale& one, category); - ~locale() throw(); // not virtual + ~locale(); // not virtual - const locale& operator=(const locale& other) throw(); + const locale& operator=(const locale& other) noexcept; template locale combine(const locale& other) const; @@ -65,7 +65,7 @@ public: }; template const Facet& use_facet(const locale&); -template bool has_facet(const locale&) throw(); +template bool has_facet(const locale&) noexcept; // 22.3.3, convenience interfaces: template bool isspace (charT c, const locale& loc); diff --git a/src/locale.cpp b/src/locale.cpp index 668847ba..f32ce966 100644 --- a/src/locale.cpp +++ b/src/locale.cpp @@ -399,25 +399,25 @@ locale::__global() return g; } -locale::locale() throw() +locale::locale() _NOEXCEPT : __locale_(__global().__locale_) { __locale_->__add_shared(); } -locale::locale(const locale& l) throw() +locale::locale(const locale& l) _NOEXCEPT : __locale_(l.__locale_) { __locale_->__add_shared(); } -locale::~locale() throw() +locale::~locale() { __locale_->__release_shared(); } const locale& -locale::operator=(const locale& other) throw() +locale::operator=(const locale& other) _NOEXCEPT { other.__locale_->__add_shared(); __locale_->__release_shared(); @@ -895,7 +895,7 @@ ctype::do_narrow(const char_type* low, const char_type* high, char dfault, } const ctype::mask* -ctype::classic_table() throw() +ctype::classic_table() _NOEXCEPT { #ifdef __APPLE__ return _DefaultRuneLocale.__runetype; @@ -1164,13 +1164,13 @@ codecvt::do_unshift(state_type&, } int -codecvt::do_encoding() const throw() +codecvt::do_encoding() const _NOEXCEPT { return 1; } bool -codecvt::do_always_noconv() const throw() +codecvt::do_always_noconv() const _NOEXCEPT { return true; } @@ -1183,7 +1183,7 @@ codecvt::do_length(state_type&, } int -codecvt::do_max_length() const throw() +codecvt::do_max_length() const _NOEXCEPT { return 1; } @@ -1365,7 +1365,7 @@ codecvt::do_unshift(state_type& st, } int -codecvt::do_encoding() const throw() +codecvt::do_encoding() const _NOEXCEPT { #ifdef __APPLE__ if (mbtowc_l(0, 0, MB_LEN_MAX, __l) == 0) @@ -1382,7 +1382,7 @@ codecvt::do_encoding() const throw() } bool -codecvt::do_always_noconv() const throw() +codecvt::do_always_noconv() const _NOEXCEPT { return false; } @@ -1418,7 +1418,7 @@ codecvt::do_length(state_type& st, } int -codecvt::do_max_length() const throw() +codecvt::do_max_length() const _NOEXCEPT { #ifdef __APPLE__ return __l == 0 ? 1 : MB_CUR_MAX_L(__l); @@ -2875,13 +2875,13 @@ codecvt::do_unshift(state_type&, } int -codecvt::do_encoding() const throw() +codecvt::do_encoding() const _NOEXCEPT { return 0; } bool -codecvt::do_always_noconv() const throw() +codecvt::do_always_noconv() const _NOEXCEPT { return false; } @@ -2896,7 +2896,7 @@ codecvt::do_length(state_type&, } int -codecvt::do_max_length() const throw() +codecvt::do_max_length() const _NOEXCEPT { return 4; } @@ -2952,13 +2952,13 @@ codecvt::do_unshift(state_type&, } int -codecvt::do_encoding() const throw() +codecvt::do_encoding() const _NOEXCEPT { return 0; } bool -codecvt::do_always_noconv() const throw() +codecvt::do_always_noconv() const _NOEXCEPT { return false; } @@ -2973,7 +2973,7 @@ codecvt::do_length(state_type&, } int -codecvt::do_max_length() const throw() +codecvt::do_max_length() const _NOEXCEPT { return 4; } @@ -3025,13 +3025,13 @@ __codecvt_utf8::do_unshift(state_type&, } int -__codecvt_utf8::do_encoding() const throw() +__codecvt_utf8::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf8::do_always_noconv() const throw() +__codecvt_utf8::do_always_noconv() const _NOEXCEPT { return false; } @@ -3046,7 +3046,7 @@ __codecvt_utf8::do_length(state_type&, } int -__codecvt_utf8::do_max_length() const throw() +__codecvt_utf8::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 7; @@ -3100,13 +3100,13 @@ __codecvt_utf8::do_unshift(state_type&, } int -__codecvt_utf8::do_encoding() const throw() +__codecvt_utf8::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf8::do_always_noconv() const throw() +__codecvt_utf8::do_always_noconv() const _NOEXCEPT { return false; } @@ -3121,7 +3121,7 @@ __codecvt_utf8::do_length(state_type&, } int -__codecvt_utf8::do_max_length() const throw() +__codecvt_utf8::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 6; @@ -3175,13 +3175,13 @@ __codecvt_utf8::do_unshift(state_type&, } int -__codecvt_utf8::do_encoding() const throw() +__codecvt_utf8::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf8::do_always_noconv() const throw() +__codecvt_utf8::do_always_noconv() const _NOEXCEPT { return false; } @@ -3196,7 +3196,7 @@ __codecvt_utf8::do_length(state_type&, } int -__codecvt_utf8::do_max_length() const throw() +__codecvt_utf8::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 7; @@ -3250,13 +3250,13 @@ __codecvt_utf16::do_unshift(state_type&, } int -__codecvt_utf16::do_encoding() const throw() +__codecvt_utf16::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf16::do_always_noconv() const throw() +__codecvt_utf16::do_always_noconv() const _NOEXCEPT { return false; } @@ -3271,7 +3271,7 @@ __codecvt_utf16::do_length(state_type&, } int -__codecvt_utf16::do_max_length() const throw() +__codecvt_utf16::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 6; @@ -3325,13 +3325,13 @@ __codecvt_utf16::do_unshift(state_type&, } int -__codecvt_utf16::do_encoding() const throw() +__codecvt_utf16::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf16::do_always_noconv() const throw() +__codecvt_utf16::do_always_noconv() const _NOEXCEPT { return false; } @@ -3346,7 +3346,7 @@ __codecvt_utf16::do_length(state_type&, } int -__codecvt_utf16::do_max_length() const throw() +__codecvt_utf16::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 6; @@ -3400,13 +3400,13 @@ __codecvt_utf16::do_unshift(state_type&, } int -__codecvt_utf16::do_encoding() const throw() +__codecvt_utf16::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf16::do_always_noconv() const throw() +__codecvt_utf16::do_always_noconv() const _NOEXCEPT { return false; } @@ -3421,7 +3421,7 @@ __codecvt_utf16::do_length(state_type&, } int -__codecvt_utf16::do_max_length() const throw() +__codecvt_utf16::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 4; @@ -3475,13 +3475,13 @@ __codecvt_utf16::do_unshift(state_type&, } int -__codecvt_utf16::do_encoding() const throw() +__codecvt_utf16::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf16::do_always_noconv() const throw() +__codecvt_utf16::do_always_noconv() const _NOEXCEPT { return false; } @@ -3496,7 +3496,7 @@ __codecvt_utf16::do_length(state_type&, } int -__codecvt_utf16::do_max_length() const throw() +__codecvt_utf16::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 4; @@ -3550,13 +3550,13 @@ __codecvt_utf16::do_unshift(state_type&, } int -__codecvt_utf16::do_encoding() const throw() +__codecvt_utf16::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf16::do_always_noconv() const throw() +__codecvt_utf16::do_always_noconv() const _NOEXCEPT { return false; } @@ -3571,7 +3571,7 @@ __codecvt_utf16::do_length(state_type&, } int -__codecvt_utf16::do_max_length() const throw() +__codecvt_utf16::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 6; @@ -3625,13 +3625,13 @@ __codecvt_utf16::do_unshift(state_type&, } int -__codecvt_utf16::do_encoding() const throw() +__codecvt_utf16::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf16::do_always_noconv() const throw() +__codecvt_utf16::do_always_noconv() const _NOEXCEPT { return false; } @@ -3646,7 +3646,7 @@ __codecvt_utf16::do_length(state_type&, } int -__codecvt_utf16::do_max_length() const throw() +__codecvt_utf16::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 6; @@ -3700,13 +3700,13 @@ __codecvt_utf8_utf16::do_unshift(state_type&, } int -__codecvt_utf8_utf16::do_encoding() const throw() +__codecvt_utf8_utf16::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf8_utf16::do_always_noconv() const throw() +__codecvt_utf8_utf16::do_always_noconv() const _NOEXCEPT { return false; } @@ -3721,7 +3721,7 @@ __codecvt_utf8_utf16::do_length(state_type&, } int -__codecvt_utf8_utf16::do_max_length() const throw() +__codecvt_utf8_utf16::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 7; @@ -3775,13 +3775,13 @@ __codecvt_utf8_utf16::do_unshift(state_type&, } int -__codecvt_utf8_utf16::do_encoding() const throw() +__codecvt_utf8_utf16::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf8_utf16::do_always_noconv() const throw() +__codecvt_utf8_utf16::do_always_noconv() const _NOEXCEPT { return false; } @@ -3796,7 +3796,7 @@ __codecvt_utf8_utf16::do_length(state_type&, } int -__codecvt_utf8_utf16::do_max_length() const throw() +__codecvt_utf8_utf16::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 7; @@ -3850,13 +3850,13 @@ __codecvt_utf8_utf16::do_unshift(state_type&, } int -__codecvt_utf8_utf16::do_encoding() const throw() +__codecvt_utf8_utf16::do_encoding() const _NOEXCEPT { return 0; } bool -__codecvt_utf8_utf16::do_always_noconv() const throw() +__codecvt_utf8_utf16::do_always_noconv() const _NOEXCEPT { return false; } @@ -3871,7 +3871,7 @@ __codecvt_utf8_utf16::do_length(state_type&, } int -__codecvt_utf8_utf16::do_max_length() const throw() +__codecvt_utf8_utf16::do_max_length() const _NOEXCEPT { if (_Mode_ & consume_header) return 7;