diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/stdapis/boost/pointee.hpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/stdapis/boost/pointee.hpp Tue Mar 16 16:12:26 2010 +0000
@@ -0,0 +1,74 @@
+#ifndef POINTEE_DWA200415_HPP
+# define POINTEE_DWA200415_HPP
+
+//
+// Copyright David Abrahams 2004. Use, modification and distribution is
+// 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)
+//
+// typename pointee
::type provides the pointee type of P.
+//
+// For example, it is T for T* and X for shared_ptr.
+//
+// http://www.boost.org/libs/iterator/doc/pointee.html
+//
+
+# include
+# include
+# include
+# include
+# include
+# include
+
+namespace boost {
+
+namespace detail
+{
+ template
+ struct smart_ptr_pointee
+ {
+ typedef typename P::element_type type;
+ };
+
+ template
+ struct iterator_pointee
+ {
+ typedef typename iterator_traits::value_type value_type;
+
+ struct impl
+ {
+ template
+ static char test(T const&);
+
+ static char (& test(value_type&) )[2];
+
+ static Iterator& x;
+ };
+
+ BOOST_STATIC_CONSTANT(bool, is_constant = sizeof(impl::test(*impl::x)) == 1);
+
+ typedef typename mpl::if_c<
+# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
+ ::boost::detail::iterator_pointee::is_constant
+# else
+ is_constant
+# endif
+ , typename add_const::type
+ , value_type
+ >::type type;
+ };
+}
+
+template
+struct pointee
+ : mpl::eval_if<
+ detail::is_incrementable
+ , detail::iterator_pointee
+ , detail::smart_ptr_pointee
+ >
+{
+};
+
+} // namespace boost
+
+#endif // POINTEE_DWA200415_HPP