#include "boost/config.hpp"
#include "boost/static_assert.hpp"
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// The MSVC version
-#include "boost/tuple/detail/tuple_basic_no_partial_spec.hpp"
-
-#else
// other compilers
#include "boost/ref.hpp"
#include "boost/tuple/detail/tuple_basic.hpp"
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
namespace boost {
using tuples::tie;
#if !defined(BOOST_NO_USING_TEMPLATE)
using tuples::get;
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+#else
//
// The "using tuples::get" statement causes the
// Borland compiler to ICE, use forwarding
get(const tuples::cons<HT, TT>& c) {
return tuples::get<N,HT,TT>(c);
}
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-//
-// MSVC, using declarations don't mix with templates well,
-// so use forwarding functions instead:
-//
-template<int N, typename Head, typename Tail>
-typename tuples::detail::element_ref<N, tuples::cons<Head, Tail> >::RET
-get(tuples::cons<Head, Tail>& t, tuples::detail::workaround_holder<N>* = 0)
-{
- return tuples::detail::get_class<N>::get(t);
-}
-template<int N, typename Head, typename Tail>
-typename tuples::detail::element_const_ref<N, tuples::cons<Head, Tail> >::RET
-get(const tuples::cons<Head, Tail>& t, tuples::detail::workaround_holder<N>* = 0)
-{
- return tuples::detail::get_class<N>::get(t);
-}
#endif // BOOST_NO_USING_TEMPLATE
} // end namespace boost