Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
1 /* Copyright 2003-2005 Joaquín M López Muñoz.
2 * Distributed under the Boost Software License, Version 1.0.
3 * (See accompanying file LICENSE_1_0.txt or copy at
4 * http://www.boost.org/LICENSE_1_0.txt)
6 * See http://www.boost.org/libs/multi_index for library home page.
9 #ifndef BOOST_MULTI_INDEX_DETAIL_MSVC_INDEX_SPECIFIER_HPP
10 #define BOOST_MULTI_INDEX_DETAIL_MSVC_INDEX_SPECIFIER_HPP
12 #if defined(_MSC_VER)&&(_MSC_VER>=1200)
16 #include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */
17 #include <boost/detail/workaround.hpp>
19 #if BOOST_WORKAROUND(BOOST_MSVC,<1310)
20 /* Workaround for a problem in MSVC with dependent template typedefs
21 * when accesing index specifiers.
22 * Modeled after <boost/mpl/aux_/msvc_dtw.hpp> (thanks, Aleksey!)
25 #include <boost/mpl/aux_/msvc_never_true.hpp>
29 namespace multi_index{
33 template<typename IndexSpecifier>
34 struct msvc_index_specifier
36 template<bool> struct fake_index_type:IndexSpecifier{};
37 template<> struct fake_index_type<true>
39 template<typename Super>
42 template<typename Super>
46 template<typename Super>
47 struct result_node_class:
48 fake_index_type<mpl::aux::msvc_never_true<IndexSpecifier>::value>::
49 template node_class<Super>
53 template<typename Super>
54 struct result_index_class:
55 fake_index_type<mpl::aux::msvc_never_true<IndexSpecifier>::value>::
56 template index_class<Super>
61 } /* namespace multi_index::detail */
63 } /* namespace multi_index */
65 } /* namespace boost */
67 #endif /* workaround */