[type traits] problem on MSVC 7.1 with is_base_and_derived

Hello, Jochen Hammann has stumbled onto a problem which can be reduced to the following: In MSVC 7.1, if setting the compiler option /vmg, is_base_and_derived crashes when dealing with instantiations of template classes that have pointers to members as template params. The attached code, if compiled with /vmg, ICEs as follows: d:\...\boost\type_traits\is_base_and_derived.hpp(127) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 2701) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information (I don't know if the problem persists in MSVC 8.0.) Is there any hope that this can be solved? Thanks in advance, Joaquín M López Muñoz Telefónica, Investigación y Desarrollo

JOAQUIN LOPEZ MU?Z writes:
Hello,
Jochen Hammann has stumbled onto a problem which can be reduced to the following: In MSVC 7.1, if setting the compiler option /vmg, is_base_and_derived crashes when dealing with instantiations of template classes that have pointers to members as template params.
The attached code, if compiled with /vmg, ICEs as follows:
d:\...\boost\type_traits\is_base_and_derived.hpp(127) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 2701) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information
(I don't know if the problem persists in MSVC 8.0.)
Is there any hope that this can be solved? Thanks in advance,
Could you please try the attached patch (exploiting VC 7.1's non-conformance w.r.t. overload resolution) on the original problem? -- Aleksey Gurtovoy MetaCommunications Engineering begin 666 is_base_and_derived.hpp.diff .dat M26YD97@Z(&ES7V)A<V5?86YD7V1E<FEV960N:'!P#0H]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]#0I20U,@9FEL93H@+V-V<W)O;W0O8F]O<W0O8F]O<W0O8F]O M<W0O='EP95]T<F%I=',O:7-?8F%S95]A;F1?9&5R:79E9"YH<' L=@T*<F5T M<FEE=FEN9R!R979I<VEO;B Q+C$T#0ID:69F("UR,2XQ-"!I<U]B87-E7V%N M9%]D97)I=F5D+FAP< T*,3$R83$Q,PT*/B C:68@(4)/3U-47U=/4DM!4D]5 M3D0H0D]/4U1?35-60RP@/3T@,3,Q,"D-"C$Q-6$Q,3<L,3(P#0H^("-E;'-E M#0H^(" @("!S=&%T:6,@='EP95]T<F%I=',Z.GEE<U]T>7!E(&-H96-K7W-I M9RA$(&-O;G-T('9O;&%T:6QE("HL(&QO;F<I.PT*/B @(" @<W1A=&EC('1Y M<&5?=')A:71S.CIN;U]T>7!E("!C:&5C:U]S:6<H0B!C;VYS="!V;VQA=&EL M92 J(&-O;G-T)BP@:6YT*3L-"CX@(V5N9&EF#0HQ,C)A,3(X#0H^("-I9B A M0D]/4U1?5T]22T%23U5.1"A"3T]35%]-4U9#+" ]/2 Q,S$P*0T*,3(S83$S M,"PQ,S(-"CX@(V5L<V4-"CX@(" @(" @("!O<&5R871O<B!"(&-O;G-T('9O D;&%T:6QE("H@8V]N<W0F*"D@8V]N<W0[#0H^("-E;F1I9@T* ` end

Aleksey Gurtovoy ha escrito:
JOAQUIN LOPEZ MU?Z writes:
Hello,
Jochen Hammann has stumbled onto a problem which can be reduced to the following: In MSVC 7.1, if setting the compiler option /vmg, is_base_and_derived crashes when dealing with instantiations of template classes that have pointers to members as template params.
The attached code, if compiled with /vmg, ICEs as follows:
d:\...\boost\type_traits\is_base_and_derived.hpp(127) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 2701) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information
(I don't know if the problem persists in MSVC 8.0.)
Is there any hope that this can be solved? Thanks in advance,
Could you please try the attached patch (exploiting VC 7.1's non-conformance w.r.t. overload resolution) on the original problem?
I don't have a MSVC 7.1 copy so I cannot help here. :( Have you tried with my test case? Does it work? If so, I'm confident the original problem will be solved as well. In case you want to give it a try, the original code where the problem popped out is given in http://lists.boost.org/boost-users/2005/04/11326.php Also, I don't know if the patch should be also applied to MSVC 8.0. Joaquín M Lópz Muñoz Telefónica, Investigación y Desarrollo

Joaquín Mª López Muñoz writes:
Aleksey Gurtovoy ha escrito:
Could you please try the attached patch (exploiting VC 7.1's non-conformance w.r.t. overload resolution) on the original problem?
I don't have a MSVC 7.1 copy so I cannot help here. :( Have you tried with my test case? Does it work?
Yes and yes. -- Aleksey Gurtovoy MetaCommunications Engineering

Could you please try the attached patch (exploiting VC 7.1's non-conformance w.r.t. overload resolution) on the original problem?
Eureka! That works, very well done! I'll commit that in a moment or two when I've double checked the tests. John.

John Maddock writes:
Could you please try the attached patch (exploiting VC 7.1's non-conformance w.r.t. overload resolution) on the original problem?
Eureka! That works, very well done! I'll commit that in a moment or two when I've double checked the tests.
Thank you. -- Aleksey Gurtovoy MetaCommunications Engineering
participants (4)
-
Aleksey Gurtovoy
-
JOAQUIN LOPEZ MU?Z
-
Joaquín Mª López Muñoz
-
John Maddock