summaryrefslogtreecommitdiff
path: root/data/iphoneos-sdk/v1/typeindex
diff options
context:
space:
mode:
authorMCApollo <34170230+MCApollo@users.noreply.github.com>2019-04-24 20:58:12 -0500
committerMCApollo <34170230+MCApollo@users.noreply.github.com>2019-04-24 20:58:12 -0500
commita12a0f8a5ab9cce38d815e83474656bf504d96dc (patch)
tree4ddff6b7a27819c46577b2a172961393677e34e6 /data/iphoneos-sdk/v1/typeindex
parent70c8b04b525b7ed4af0689ebf2b2ad540c95ec11 (diff)
Proposed package to replace iphoneos-sys.
Diffstat (limited to 'data/iphoneos-sdk/v1/typeindex')
-rwxr-xr-xdata/iphoneos-sdk/v1/typeindex103
1 files changed, 103 insertions, 0 deletions
diff --git a/data/iphoneos-sdk/v1/typeindex b/data/iphoneos-sdk/v1/typeindex
new file mode 100755
index 000000000..0565ca913
--- /dev/null
+++ b/data/iphoneos-sdk/v1/typeindex
@@ -0,0 +1,103 @@
+// -*- C++ -*-
+//===-------------------------- typeindex ---------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _LIBCPP_TYPEINDEX
+#define _LIBCPP_TYPEINDEX
+
+/*
+
+ typeindex synopsis
+
+namespace std
+{
+
+class type_index
+{
+public:
+ type_index(const type_info& rhs) 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;
+ bool operator>=(const type_index& rhs) const noexcept;
+
+ 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 noexcept;
+};
+
+} // std
+
+*/
+
+#include <__config>
+#include <typeinfo>
+#include <__functional_base>
+
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+#pragma GCC system_header
+#endif
+
+_LIBCPP_BEGIN_NAMESPACE_STD
+
+class _LIBCPP_TEMPLATE_VIS type_index
+{
+ const type_info* __t_;
+public:
+ _LIBCPP_INLINE_VISIBILITY
+ type_index(const type_info& __y) _NOEXCEPT : __t_(&__y) {}
+
+ _LIBCPP_INLINE_VISIBILITY
+ bool operator==(const type_index& __y) const _NOEXCEPT
+ {return *__t_ == *__y.__t_;}
+ _LIBCPP_INLINE_VISIBILITY
+ bool operator!=(const type_index& __y) const _NOEXCEPT
+ {return *__t_ != *__y.__t_;}
+ _LIBCPP_INLINE_VISIBILITY
+ bool operator< (const type_index& __y) const _NOEXCEPT
+ {return __t_->before(*__y.__t_);}
+ _LIBCPP_INLINE_VISIBILITY
+ bool operator<=(const type_index& __y) const _NOEXCEPT
+ {return !__y.__t_->before(*__t_);}
+ _LIBCPP_INLINE_VISIBILITY
+ bool operator> (const type_index& __y) const _NOEXCEPT
+ {return __y.__t_->before(*__t_);}
+ _LIBCPP_INLINE_VISIBILITY
+ bool operator>=(const type_index& __y) const _NOEXCEPT
+ {return !__t_->before(*__y.__t_);}
+
+ _LIBCPP_INLINE_VISIBILITY
+ size_t hash_code() const _NOEXCEPT {return __t_->hash_code();}
+ _LIBCPP_INLINE_VISIBILITY
+ const char* name() const _NOEXCEPT {return __t_->name();}
+};
+
+template <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;
+
+template <>
+struct _LIBCPP_TEMPLATE_VIS hash<type_index>
+ : public unary_function<type_index, size_t>
+{
+ _LIBCPP_INLINE_VISIBILITY
+ size_t operator()(type_index __index) const _NOEXCEPT
+ {return __index.hash_code();}
+};
+
+_LIBCPP_END_NAMESPACE_STD
+
+#endif // _LIBCPP_TYPEINDEX