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
This commit is contained in:
parent
0667433587
commit
0687adca37
@ -21,24 +21,24 @@ namespace std
|
|||||||
class type_index
|
class type_index
|
||||||
{
|
{
|
||||||
public:
|
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 noexcept;
|
||||||
bool operator!=(const type_index& rhs) const;
|
bool operator!=(const type_index& rhs) const noexcept;
|
||||||
bool operator< (const type_index& rhs) const;
|
bool operator< (const type_index& rhs) const noexcept;
|
||||||
bool operator<=(const type_index& rhs) const;
|
bool operator<=(const type_index& rhs) const noexcept;
|
||||||
bool operator> (const type_index& rhs) const;
|
bool operator> (const type_index& rhs) const noexcept;
|
||||||
bool operator>=(const type_index& rhs) const;
|
bool operator>=(const type_index& rhs) const noexcept;
|
||||||
|
|
||||||
size_t hash_code() const;
|
size_t hash_code() const noexcept;
|
||||||
const char* name() const;
|
const char* name() const noexcept;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct hash<type_index>
|
struct hash<type_index>
|
||||||
: public unary_function<type_index, size_t>
|
: public unary_function<type_index, size_t>
|
||||||
{
|
{
|
||||||
size_t operator()(type_index index) const;
|
size_t operator()(type_index index) const noexcept;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // std
|
} // std
|
||||||
@ -58,25 +58,31 @@ class _LIBCPP_VISIBLE type_index
|
|||||||
const type_info* __t_;
|
const type_info* __t_;
|
||||||
public:
|
public:
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
type_index(const type_info& __y) : __t_(&__y) {}
|
type_index(const type_info& __y) _NOEXCEPT : __t_(&__y) {}
|
||||||
|
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_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
|
_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
|
_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
|
_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
|
_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
|
_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
|
_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
|
_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;
|
template <class _Tp> struct _LIBCPP_VISIBLE hash;
|
||||||
@ -86,7 +92,8 @@ struct _LIBCPP_VISIBLE hash<type_index>
|
|||||||
: public unary_function<type_index, size_t>
|
: public unary_function<type_index, size_t>
|
||||||
{
|
{
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_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
|
_LIBCPP_END_NAMESPACE_STD
|
||||||
|
Loading…
x
Reference in New Issue
Block a user