From 0687adca376ac24156967d402bda73384f0416c1 Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Sat, 28 May 2011 18:57:24 +0000 Subject: [PATCH] noexcept for . This completes Chapter 20 [utilities]. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132267 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/typeindex | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/include/typeindex b/include/typeindex index 8f32ad56..7fb1513c 100644 --- a/include/typeindex +++ b/include/typeindex @@ -21,24 +21,24 @@ namespace std class type_index { public: - type_index(const type_info& rhs); + type_index(const type_info& rhs) noexcept; - bool operator==(const type_index& rhs) const; - bool operator!=(const type_index& rhs) const; - bool operator< (const type_index& rhs) const; - bool operator<=(const type_index& rhs) const; - bool operator> (const type_index& rhs) const; - bool operator>=(const type_index& rhs) const; + bool operator==(const type_index& rhs) const noexcept; + bool operator!=(const type_index& rhs) const noexcept; + bool operator< (const type_index& rhs) const noexcept; + bool operator<=(const type_index& rhs) const noexcept; + bool operator> (const type_index& rhs) const noexcept; + bool operator>=(const type_index& rhs) const noexcept; - size_t hash_code() const; - const char* name() const; + size_t hash_code() const noexcept; + const char* name() const noexcept; }; template <> struct hash : public unary_function { - size_t operator()(type_index index) const; + size_t operator()(type_index index) const noexcept; }; } // std @@ -58,25 +58,31 @@ class _LIBCPP_VISIBLE type_index const type_info* __t_; public: _LIBCPP_INLINE_VISIBILITY - type_index(const type_info& __y) : __t_(&__y) {} + type_index(const type_info& __y) _NOEXCEPT : __t_(&__y) {} _LIBCPP_INLINE_VISIBILITY - bool operator==(const type_index& __y) const {return *__t_ == *__y.__t_;} + bool operator==(const type_index& __y) const _NOEXCEPT + {return *__t_ == *__y.__t_;} _LIBCPP_INLINE_VISIBILITY - bool operator!=(const type_index& __y) const {return *__t_ != *__y.__t_;} + bool operator!=(const type_index& __y) const _NOEXCEPT + {return *__t_ != *__y.__t_;} _LIBCPP_INLINE_VISIBILITY - bool operator< (const type_index& __y) const {return __t_->before(*__y.__t_);} + bool operator< (const type_index& __y) const _NOEXCEPT + {return __t_->before(*__y.__t_);} _LIBCPP_INLINE_VISIBILITY - bool operator<=(const type_index& __y) const {return !__y.__t_->before(*__t_);} + bool operator<=(const type_index& __y) const _NOEXCEPT + {return !__y.__t_->before(*__t_);} _LIBCPP_INLINE_VISIBILITY - bool operator> (const type_index& __y) const {return __y.__t_->before(*__t_);} + bool operator> (const type_index& __y) const _NOEXCEPT + {return __y.__t_->before(*__t_);} _LIBCPP_INLINE_VISIBILITY - bool operator>=(const type_index& __y) const {return !__t_->before(*__y.__t_);} + bool operator>=(const type_index& __y) const _NOEXCEPT + {return !__t_->before(*__y.__t_);} _LIBCPP_INLINE_VISIBILITY - size_t hash_code() const {return __t_->hash_code();} + size_t hash_code() const _NOEXCEPT {return __t_->hash_code();} _LIBCPP_INLINE_VISIBILITY - const char* name() const {return __t_->name();} + const char* name() const _NOEXCEPT {return __t_->name();} }; template struct _LIBCPP_VISIBLE hash; @@ -86,7 +92,8 @@ struct _LIBCPP_VISIBLE hash : public unary_function { _LIBCPP_INLINE_VISIBILITY - size_t operator()(type_index __index) const {return __index.hash_code();} + size_t operator()(type_index __index) const _NOEXCEPT + {return __index.hash_code();} }; _LIBCPP_END_NAMESPACE_STD