summaryrefslogtreecommitdiff
path: root/include/typeinfo
diff options
context:
space:
mode:
Diffstat (limited to 'include/typeinfo')
-rw-r--r--include/typeinfo76
1 files changed, 76 insertions, 0 deletions
diff --git a/include/typeinfo b/include/typeinfo
new file mode 100644
index 0000000..ab87f7e
--- /dev/null
+++ b/include/typeinfo
@@ -0,0 +1,76 @@
+// Copyright (C) 2011 The Android Open Source Project
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the project nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// typeinfo: RTTI support header.
+//
+// References:
+// Itanium C++ ABI at http://www.codesourcery.com/public/cxx-abi/abi.html.
+// IHI0041A C++ Application Binary Interface for the ARM architecture.
+// Linux Standard Base C++ Specification for S390X 4.1.
+//
+
+#ifndef __GABIXX_TYPEINFO__
+#define __GABIXX_TYPEINFO__
+
+namespace std
+{
+ // Defintion of type_info based on example in C++ ABI section 2.9.3
+ class type_info
+ {
+ public:
+ virtual
+ ~type_info();
+
+ // Whether two type_infos corresponds to the same types.
+ bool
+ operator==(const type_info &ti) const;
+
+ // Whether two type_infos corresponds to the different types.
+ bool
+ operator!=(const type_info &ti) const;
+
+ bool
+ before(const type_info &ti) const;
+
+ // Return name of type.
+ const char*
+ name() const { return __type_name; }
+
+ private:
+ // Assignment of type_info is not allowed.
+ type_info (const type_info& rhs);
+
+ type_info&
+ operator=(const type_info& rhs);
+
+ // Mangled name of type.
+ const char *__type_name;
+ };
+
+} // namespace std
+
+#endif // _GABIXX_TYPEINFO_