Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
1 //-----------------------------------------------------------------------------
2 // boost variant/detail/apply_visitor_unary.hpp header file
3 // See http://www.boost.org for updates, documentation, and revision history.
4 //-----------------------------------------------------------------------------
6 // Copyright (c) 2002-2003
9 // Distributed under the Boost Software License, Version 1.0. (See
10 // accompanying file LICENSE_1_0.txt or copy at
11 // http://www.boost.org/LICENSE_1_0.txt)
13 #ifndef BOOST_VARIANT_DETAIL_APPLY_VISITOR_UNARY_HPP
14 #define BOOST_VARIANT_DETAIL_APPLY_VISITOR_UNARY_HPP
16 #include "boost/config.hpp"
17 #include "boost/detail/workaround.hpp"
18 #include "boost/variant/detail/generic_result_type.hpp"
20 #include "boost/utility/enable_if.hpp"
24 //////////////////////////////////////////////////////////////////////////
25 // function template apply_visitor(visitor, visitable)
27 // Visits visitable with visitor.
31 // nonconst-visitor version:
34 #if !BOOST_WORKAROUND(__EDG__, BOOST_TESTED_AT(302))
36 # define BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(V) \
37 BOOST_VARIANT_AUX_GENERIC_RESULT_TYPE(typename V::result_type) \
40 #else // EDG-based compilers
42 # define BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(V) \
44 mpl::not_< is_const< V > > \
45 , BOOST_VARIANT_AUX_GENERIC_RESULT_TYPE(typename V::result_type) \
49 #endif // EDG-based compilers workaround
51 template <typename Visitor, typename Visitable>
53 BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE(Visitor)
54 apply_visitor(Visitor& visitor, Visitable& visitable)
56 return visitable.apply_visitor(visitor);
59 #undef BOOST_VARIANT_AUX_APPLY_VISITOR_NON_CONST_RESULT_TYPE
62 // const-visitor version:
65 #if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
67 template <typename Visitor, typename Visitable>
69 BOOST_VARIANT_AUX_GENERIC_RESULT_TYPE(typename Visitor::result_type)
70 apply_visitor(const Visitor& visitor, Visitable& visitable)
72 return visitable.apply_visitor(visitor);
75 #endif // MSVC7 and below exclusion
79 #endif // BOOST_VARIANT_DETAIL_APPLY_VISITOR_UNARY_HPP