forked from boostorg/tuple
Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Process #elif...#else...#endif blocks. [SVN r86247]
This commit is contained in:
@ -35,7 +35,7 @@ using tuples::make_tuple;
|
|||||||
using tuples::tie;
|
using tuples::tie;
|
||||||
#if !defined(BOOST_NO_USING_TEMPLATE)
|
#if !defined(BOOST_NO_USING_TEMPLATE)
|
||||||
using tuples::get;
|
using tuples::get;
|
||||||
#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
|
#else
|
||||||
//
|
//
|
||||||
// The "using tuples::get" statement causes the
|
// The "using tuples::get" statement causes the
|
||||||
// Borland compiler to ICE, use forwarding
|
// Borland compiler to ICE, use forwarding
|
||||||
@ -58,24 +58,7 @@ inline typename tuples::access_traits<
|
|||||||
get(const tuples::cons<HT, TT>& c) {
|
get(const tuples::cons<HT, TT>& c) {
|
||||||
return tuples::get<N,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
|
#endif // BOOST_NO_USING_TEMPLATE
|
||||||
|
|
||||||
} // end namespace boost
|
} // end namespace boost
|
||||||
|
Reference in New Issue
Block a user