Boost logo

Boost :

Subject: Re: [boost] [test, parameter, fusion] en/disable_if name clash in trunk
From: Tim Blechmann (tim_at_[hidden])
Date: 2011-12-11 07:30:58


> >> it seems that the new boost::unit_test::decorator::enable_if,
> >> introduced in
> >>
> >> [1] clashes with boost::enable_if under certain circumstances. this
> >> currently breaks the boost.heap testsuite (see [2]).
> >>
> >> maybe the test/parameter/fusion maintainers could discuss, how that
> >> can be resolved?
> >
> > ping
> >
> > the deadline for merging new libraries is in one week. i'd like to merge
> > boost.heap into the release branch for 1.49, but i won't do it, if the
> > testsuite does not build, because the enable_if name clash.
> >
> > i have submitted patches to the tracker, but i won't mess with other
> > people's code.
>
> I haven't answered becase it seems like clearly a Boost.Test issue. Am
> I mistaken? If something needs to be done to Boost.Parameter, you have
> my blessing to go ahead.

there are boost::enable_if and boost::unit_test::decorator::enable_if, which
is pulled into boost::unit_test.

it breaks usage of enable_if because the compiler cannot figure out, which
enable_if to use:

namespace boost { namespace mpl {
template <class T>
struct lambda<
    T
  , typename enable_if<
        parameter::aux::is_name_tag<T>, parameter::aux::lambda_tag
>::type

maybe it is a bug in boost.test, but it can be worked around in
boost.parameter and boost.fusion by specifying the full name boost::enable_if.

tim


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk