noexcept for <typeindex>. This completes Chapter 20 [utilities].
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132267 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/typeindex b/include/typeindex
index 8f32ad5..7fb1513 100644
--- a/include/typeindex
+++ b/include/typeindex
@@ -21,24 +21,24 @@
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<type_index>
: public unary_function<type_index, size_t>
{
- size_t operator()(type_index index) const;
+ size_t operator()(type_index index) const noexcept;
};
} // std
@@ -58,25 +58,31 @@
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 <class _Tp> struct _LIBCPP_VISIBLE hash;
@@ -86,7 +92,8 @@
: public unary_function<type_index, size_t>
{
_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