[C++-sig] Re: const_argument test failures

Aleksey Gurtovoy agurtovoy at meta-comm.com
Sun Oct 24 09:33:39 CEST 2004


Aleksey Gurtovoy writes:
> David Abrahams writes:
> >>> This compiler bug should have been worked around on
> >>> every platform that has partial specialization 
> >>
> >> Definitely possible, but then all platforms that support partial
> >> specialization don't have a problem _compiling_ the code. I'm not
> >> sure how run-time failures come into picture here.
> >
> > The type of the argument is translated into a typeid, and type
> > converters are registered against a typeid.  If the type of the
> > argument is wrong, it won't find the right registered converter.
> 
> Got it.
> 
> >
> >>> (the test passes for me with vc7.1), 
> >>
> >> That's because the bug was fixed in the compiler.
> >
> > I don't think so.  It used to fail on vc7.1 IIUC.  I certainly ran
> > the test, had it fail, applied a workaround, and had the test pass on
> > some compiler.
> 
> We are talking about slightly different bugs here. On MSVC 6.5 the
> following simply doesn't compile (bug #1):
> 
>     template< typename T > void f(void (*)(T));
>     void g(int const);
> 
>     int main()
>     {
>         f(g);
>     }
> 
> On VC 7 and higher it does, but T is deduced as 'int const' (bug #2).
> 
> >
> >>> and it can be made to work on VC6/7 with
> >>> 
> >>> BOOST_TT_BROKEN_COMPILER_SPEC( object )
> >>
> >> I don't see how this one would help, though.
> >
> > It allows the workaround, which involves remove_cv, to work.
> 
> ... taking care of the run-time failure. Got it. I was saying that it
> won't help to get 'get_signature' compile on MSVC 6.5.

I took care of it (both in the main trunk and the release branch).

--
Aleksey Gurtovoy
MetaCommunications Engineering




More information about the Cplusplus-sig mailing list