This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/17232] classes and class template specializations treated differently w.r.t. core issue #337


------- Additional Comments From giovannibajo at libero dot it  2004-08-30 14:45 -------
(In reply to comment #6)

> IMHO the class template needs to be instantiated:
>   14.7.1/p4 (Implicit Instantiation)
>   [...]

I'm with you here, but we need language lawyers to confirm.

> Do I understand you correctly, EDG based compilers will call the first
> overload for A<int>? 

Yes.

> (I don't have access to an EDG based compiler whence I
> cannot easily test it myself.)

http://www.comeaucomputing.com/tryitout. You have to change your test into a 
compile-time only test though. For instance, remove the catch-all ellipsis 
overload and see if the compilation succeeds or fails because there is no 
viable functions (see also the testcase in my patch, which I have attacched to 
this bug).

> Sure, I will post this problem to comp.std.c++.

Thanks, get back to us when you get an answer.


> For gcc <= 3.3.x it is known that DR 337 is not implemented whence
> boost::is_abstract fails. The user must explicitly mark abstract
> classes (essentially by an explicit specialization of
> boost::is_abstract) if the serialization library is used with 
> gcc <= 3.3.x.

I see you raised this on the Boost list. Maybe it is worth disabling
is_abstract for GCC 3.4, as the problem will be fixed in 3.5.0 only.

I apologize for not catching this simple bug back when I added support for the 
DR, I usually test both template and non-template cases...

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17232


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]