deref.hpp 939 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef BOOST_MPL_DEREF_HPP_INCLUDED
  2. #define BOOST_MPL_DEREF_HPP_INCLUDED
  3. // Copyright Aleksey Gurtovoy 2002-2004
  4. //
  5. // Distributed under the Boost Software License, Version 1.0.
  6. // (See accompanying file LICENSE_1_0.txt or copy at
  7. // http://www.boost.org/LICENSE_1_0.txt)
  8. //
  9. // See http://www.boost.org/libs/mpl for documentation.
  10. // $Id$
  11. // $Date$
  12. // $Revision$
  13. #include <boost/mpl/aux_/msvc_type.hpp>
  14. #include <boost/mpl/aux_/na_spec.hpp>
  15. #include <boost/mpl/aux_/lambda_support.hpp>
  16. #include <boost/mpl/aux_/config/eti.hpp>
  17. namespace boost { namespace mpl {
  18. template<
  19. typename BOOST_MPL_AUX_NA_PARAM(Iterator)
  20. >
  21. struct deref
  22. {
  23. #if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
  24. typedef typename Iterator::type type;
  25. #else
  26. typedef typename aux::msvc_type<Iterator>::type type;
  27. #endif
  28. BOOST_MPL_AUX_LAMBDA_SUPPORT(1,deref,(Iterator))
  29. };
  30. BOOST_MPL_AUX_NA_SPEC(1, deref)
  31. }}
  32. #endif // BOOST_MPL_DEREF_HPP_INCLUDED