Imported Upstream version 1.57.0
[platform/upstream/boost.git] / boost / container / detail / transform_iterator.hpp
index 98f5c04..c4e746c 100644 (file)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2012.
+// (C) Copyright Ion Gaztanaga 2005-2013.
 // (C) Copyright Gennaro Prota 2003 - 2004.
 //
 // Distributed under the Boost Software License, Version 1.0.
 #ifndef BOOST_CONTAINER_DETAIL_TRANSFORM_ITERATORS_HPP
 #define BOOST_CONTAINER_DETAIL_TRANSFORM_ITERATORS_HPP
 
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
+#if defined(_MSC_VER)
 #  pragma once
 #endif
 
-#include "config_begin.hpp"
+#include <boost/container/detail/config_begin.hpp>
 #include <boost/container/detail/workaround.hpp>
+
 #include <boost/container/detail/type_traits.hpp>
 #include <iterator>
 
@@ -33,10 +34,10 @@ struct operator_arrow_proxy
       :  m_value(px)
    {}
 
+   typedef PseudoReference element_type;
+
    PseudoReference* operator->() const { return &m_value; }
-   // This function is needed for MWCW and BCC, which won't call operator->
-   // again automatically per 13.3.1.2 para 8
-//   operator T*() const { return &m_value; }
+
    mutable PseudoReference m_value;
 };
 
@@ -47,10 +48,10 @@ struct operator_arrow_proxy<T&>
       :  m_value(px)
    {}
 
+   typedef T element_type;
+
    T* operator->() const { return const_cast<T*>(&m_value); }
-   // This function is needed for MWCW and BCC, which won't call operator->
-   // again automatically per 13.3.1.2 para 8
-//   operator T*() const { return &m_value; }
+
    T &m_value;
 };