summaryrefslogtreecommitdiffstats
path: root/indexlib/boost-compat/remove_cv.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'indexlib/boost-compat/remove_cv.hpp')
-rw-r--r--indexlib/boost-compat/remove_cv.hpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/indexlib/boost-compat/remove_cv.hpp b/indexlib/boost-compat/remove_cv.hpp
new file mode 100644
index 00000000..ec7c1a95
--- /dev/null
+++ b/indexlib/boost-compat/remove_cv.hpp
@@ -0,0 +1,61 @@
+#ifndef BOOST_TT_REMOVE_CV_HPP_INCLUDED
+#define BOOST_TT_REMOVE_CV_HPP_INCLUDED
+#ifndef BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
+#define BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
+// ADAPTED (TAKEN) FROM BOOST
+//
+// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
+// Hinnant & John Maddock 2000.
+// Use, modification and distribution are subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt).
+//
+// See http://www.boost.org/libs/type_traits for most recent version including documentation.
+//
+
+
+
+
+namespace boost {
+namespace detail {
+
+// implementation helper:
+
+template <typename T> struct cv_traits_imp {};
+
+template <typename T>
+struct cv_traits_imp<T*>
+{
+ typedef T unqualified_type;
+};
+
+template <typename T>
+struct cv_traits_imp<const T*>
+{
+ typedef T unqualified_type;
+};
+
+template <typename T>
+struct cv_traits_imp<volatile T*>
+{
+ typedef T unqualified_type;
+};
+
+template <typename T>
+struct cv_traits_imp<const volatile T*>
+{
+ typedef T unqualified_type;
+};
+
+} // namespace detail
+
+template <typename T>
+struct remove_cv {
+ typedef typename detail::cv_traits_imp<T*>::unqualified_type type;
+};
+} // namespace boost
+
+
+
+#endif
+#endif