gcc ADL fixes

[SVN r17811]
This commit is contained in:
Aleksey Gurtovoy
2003-03-11 11:59:49 +00:00
parent db4f1d99cb
commit bbcf7e9294
20 changed files with 117 additions and 20 deletions

View File

@@ -68,6 +68,8 @@ struct advance_impl<ra_iter_tag_,Iterator,N>
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Iterator) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Iterator)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(N) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(N)
@@ -81,6 +83,8 @@ struct advance
>::type type; >::type type;
}; };
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
template< template<
typename Iterator typename Iterator
, BOOST_MPL_AUX_NTTP_DECL(long, N) , BOOST_MPL_AUX_NTTP_DECL(long, N)
@@ -148,6 +152,8 @@ struct advance_impl<ra_iter_tag_>
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Iterator) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Iterator)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(N) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(N)
@@ -162,6 +168,8 @@ struct advance
>::type type; >::type type;
}; };
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
template< template<
typename Iterator typename Iterator
, BOOST_MPL_AUX_NTTP_DECL(long, N) , BOOST_MPL_AUX_NTTP_DECL(long, N)
@@ -178,7 +186,7 @@ struct advance_c
#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
BOOST_MPL_AUX_VOID_SPEC(2, advance) BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2, advance)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -23,6 +23,8 @@
namespace boost { namespace boost {
namespace mpl { namespace mpl {
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State)
@@ -33,7 +35,9 @@ struct copy
{ {
}; };
BOOST_MPL_AUX_VOID_SPEC(3, copy) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(3, copy)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -26,6 +26,8 @@
namespace boost { namespace boost {
namespace mpl { namespace mpl {
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State)
@@ -46,7 +48,9 @@ struct copy_backward_if
>::type type; >::type type;
}; };
BOOST_MPL_AUX_VOID_SPEC(4, copy_backward_if) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(4, copy_backward_if)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -26,6 +26,8 @@
namespace boost { namespace boost {
namespace mpl { namespace mpl {
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State)
@@ -46,7 +48,9 @@ struct copy_if
>::type type; >::type type;
}; };
BOOST_MPL_AUX_VOID_SPEC(4, copy_if) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(4, copy_if)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -25,6 +25,8 @@
namespace boost { namespace boost {
namespace mpl { namespace mpl {
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
@@ -35,7 +37,9 @@ struct count
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,count,(Sequence,T)) BOOST_MPL_AUX_LAMBDA_SUPPORT(2,count,(Sequence,T))
}; };
BOOST_MPL_AUX_VOID_SPEC(2, count) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2, count)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -52,6 +52,8 @@ struct next_if
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate)
@@ -71,7 +73,9 @@ struct count_if
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,count_if,(Sequence,Predicate)) BOOST_MPL_AUX_LAMBDA_SUPPORT(2,count_if,(Sequence,Predicate))
}; };
BOOST_MPL_AUX_VOID_SPEC(2, count_if) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2, count_if)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -56,6 +56,8 @@ struct distance_impl<ra_iter_tag_,First,Last>
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(First) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(First)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Last) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Last)
@@ -70,6 +72,8 @@ struct distance
>::type type; >::type type;
}; };
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
#else #else
namespace aux { namespace aux {
@@ -99,6 +103,8 @@ struct distance_impl<ra_iter_tag_>
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(First) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(First)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Last) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Last)
@@ -113,9 +119,11 @@ struct distance
{ {
}; };
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
BOOST_MPL_AUX_VOID_SPEC(2, distance) BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2, distance)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -61,6 +61,8 @@ struct equal_pred
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence1) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence2) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence2)
@@ -97,7 +99,9 @@ struct equal
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,equal,(Sequence1,Sequence2)) BOOST_MPL_AUX_LAMBDA_SUPPORT(2,equal,(Sequence1,Sequence2))
}; };
BOOST_MPL_AUX_VOID_SPEC(2, equal) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2, equal)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -25,6 +25,8 @@
namespace boost { namespace boost {
namespace mpl { namespace mpl {
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
@@ -35,7 +37,9 @@ struct find
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find,(Sequence,T)) BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find,(Sequence,T))
}; };
BOOST_MPL_AUX_VOID_SPEC(2, find) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2, find)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -54,6 +54,8 @@ struct find_if_pred
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate)
@@ -78,7 +80,9 @@ struct find_if
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate)) BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate))
}; };
BOOST_MPL_AUX_VOID_SPEC(2,find_if) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2,find_if)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -51,6 +51,8 @@ namespace mpl {
#if defined(BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL) #if defined(BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL)
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
// agurt 23/oct/02: has a wrong complexity etc., but at least it works // agurt 23/oct/02: has a wrong complexity etc., but at least it works
// feel free to contribute a better implementation! // feel free to contribute a better implementation!
template< template<
@@ -64,6 +66,8 @@ struct lower_bound
{ {
}; };
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
#else #else
namespace aux { namespace aux {
@@ -121,6 +125,8 @@ struct lower_bound_step_impl
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
@@ -138,9 +144,11 @@ struct lower_bound
>::type type; >::type type;
}; };
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
#endif // BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL #endif // BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL
BOOST_MPL_AUX_VOID_SPEC(2, lower_bound) BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2, lower_bound)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -52,6 +52,9 @@ struct select_max
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename Predicate = less<_,_> , typename Predicate = less<_,_>
@@ -69,7 +72,9 @@ struct max_element
>::type type; >::type type;
}; };
BOOST_MPL_AUX_VOID_SPEC(1, max_element) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(1, max_element)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -24,6 +24,8 @@
namespace boost { namespace boost {
namespace mpl { namespace mpl {
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
@@ -33,7 +35,9 @@ struct remove
{ {
}; };
BOOST_MPL_AUX_VOID_SPEC(2, remove) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2, remove)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -45,6 +45,8 @@ template< typename Pred > struct remove_if_helper
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate)
@@ -62,7 +64,9 @@ struct remove_if
>::type type; >::type type;
}; };
BOOST_MPL_AUX_VOID_SPEC(2, remove_if) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2, remove_if)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -24,6 +24,8 @@
namespace boost { namespace boost {
namespace mpl { namespace mpl {
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(OldType) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(OldType)
@@ -34,7 +36,9 @@ struct replace
{ {
}; };
BOOST_MPL_AUX_VOID_SPEC(3, replace) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(3, replace)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -44,6 +44,8 @@ struct replace_if_op
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate)
@@ -61,7 +63,9 @@ struct replace_if
>::type type; >::type type;
}; };
BOOST_MPL_AUX_VOID_SPEC(3, replace_if) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(3, replace_if)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -25,6 +25,8 @@
namespace boost { namespace boost {
namespace mpl { namespace mpl {
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
> >
@@ -41,7 +43,9 @@ struct reverse
>::type type; >::type type;
}; };
BOOST_MPL_AUX_VOID_SPEC(1, reverse) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(1, reverse)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -44,6 +44,8 @@ struct transform_op
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Operation) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Operation)
@@ -62,7 +64,9 @@ struct transform
>::type type; >::type type;
}; };
BOOST_MPL_AUX_VOID_SPEC(2, transform) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2, transform)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -59,6 +59,8 @@ struct unique_op
BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1,aux::unique_op) BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1,aux::unique_op)
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename Predicate = is_same<_,_> , typename Predicate = is_same<_,_>
@@ -85,7 +87,9 @@ struct unique
#endif #endif
}; };
BOOST_MPL_AUX_VOID_SPEC(1, unique) BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(1, unique)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost

View File

@@ -50,6 +50,8 @@ namespace mpl {
#if defined(BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL) #if defined(BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL)
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
// agurt 23/oct/02: has a wrong complexity etc., but at least it works; // agurt 23/oct/02: has a wrong complexity etc., but at least it works;
// feel free to contribute a better implementation! // feel free to contribute a better implementation!
template< template<
@@ -63,6 +65,8 @@ struct upper_bound
{ {
}; };
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
#else #else
namespace aux { namespace aux {
@@ -119,6 +123,8 @@ struct upper_bound_step_impl
} // namespace aux } // namespace aux
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN
template< template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
@@ -136,9 +142,11 @@ struct upper_bound
>::type type; >::type type;
}; };
BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END
#endif // BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL #endif // BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL
BOOST_MPL_AUX_VOID_SPEC(2, upper_bound) BOOST_MPL_AUX_ALGORITHM_VOID_SPEC(2, upper_bound)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost