summaryrefslogtreecommitdiffstats
path: root/ext/boost/pointer_to_other.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'ext/boost/pointer_to_other.hpp')
-rw-r--r--ext/boost/pointer_to_other.hpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/ext/boost/pointer_to_other.hpp b/ext/boost/pointer_to_other.hpp
new file mode 100644
index 0000000000..85167349cf
--- /dev/null
+++ b/ext/boost/pointer_to_other.hpp
@@ -0,0 +1,55 @@
+#ifndef BOOST_POINTER_TO_OTHER_HPP_INCLUDED
+#define BOOST_POINTER_TO_OTHER_HPP_INCLUDED
+
+//
+// pointer_to_other.hpp
+//
+// (C) Copyright Ion Gaztanaga 2005.
+// Copyright (c) 2005 Peter Dimov.
+//
+// Distributed under 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/smart_ptr/pointer_to_other.html
+//
+
+namespace boost
+{
+
+// Defines the same pointer type (raw or smart) to another pointee type
+
+template<class T, class U>
+struct pointer_to_other;
+
+template<class T, class U,
+ template<class> class Sp>
+struct pointer_to_other< Sp<T>, U >
+{
+ typedef Sp<U> type;
+};
+
+template<class T, class T2, class U,
+ template<class, class> class Sp>
+struct pointer_to_other< Sp<T, T2>, U >
+{
+ typedef Sp<U, T2> type;
+};
+
+template<class T, class T2, class T3, class U,
+ template<class, class, class> class Sp>
+struct pointer_to_other< Sp<T, T2, T3>, U >
+{
+ typedef Sp<U, T2, T3> type;
+};
+
+template<class T, class U>
+struct pointer_to_other< T*, U >
+{
+ typedef U* type;
+};
+
+} // namespace boost
+
+#endif // #ifndef BOOST_POINTER_TO_OTHER_HPP_INCLUDED