-
- Downloads
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.
Loading
Please register or sign in to comment