Skip to content
Snippets Groups Projects
Commit 08113811 authored by Philippe Canal's avatar Philippe Canal
Browse files

Even better algorithm for ReSubstTemplateArg.

In the case:

   template <class T ,class U = T ,class B = ::boo::detail::empty_base<T> ,class O = typename boo::is_chained_base<U>::value >
   struct equality_comparable : boo::equality_comparable2<T, U, B> {};

   template<class T, class U, class B>
   struct equality_comparable<T, U, B, ::boo::detail::true_t> : boo::equality_comparable1<T, U> {};

   template <class T, class B>
   struct equality_comparable<T, T, B, ::boo::detail::false_t> : boo::equality_comparable1<T, B> {};

The previous algorithm did not properly notice that the 2nd argument of the base class should *not* be
replaced by the 2nd argument of the template ... but rather by the 3rd.

Rather than counting the dependent/replaced argument we now rely on the recorded index and depth
in the AST node.
parent f2485b58
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment