This is the mail archive of the gcc-prs@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]

c++/416: Instantiating templates with typedef fails on 'operator==' function



>Number:         416
>Category:       c++
>Synopsis:       Instantiating templates with typedef fails on 'operator==' function
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Sat Jul 15 22:46:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Nick Monyatovsky
>Release:        gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
>Organization:
>Environment:
Linux 2.2.14-5.0 i686 (Standard RedHat 6.1 on Intel Pentium III)
>Description:
When creating specializations of a template for some type,
instantiation fails for 'operator==' et al functions if
typedef is used. Any other function instantiates correctly,
regardless of whether type argument is passed directly to a 
template or through a typedef.
>How-To-Repeat:
g++ -c instantiationProblem.C
>Fix:
Do not use typedef. Use the underlying type directly.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="instantiationProblem.C"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="instantiationProblem.C"

Ly8gCi8vIFRoaXMgZXhhbXBsZSBzaG93cyB0aGUgcHJvYmxlbSBvZiBpbnN0YW50aWF0aW5nIHRo
ZSAnb3BlcmF0b3I9PScKLy8gZnVuY3Rpb24gdXNpbmcgYSB0eXBlZGVmLiBBbnkgb3RoZXIgZnVu
Y3Rpb24gYmVzaWRlIHRoYXQgb3BlcmF0b3IgCi8vIGluc3RhbnRpYXRlcyBjb3JyZWN0bHkuCi8v
Ci8vCi8vIFRvIHNlZSB0aGUgcHJvYmxlbSwgY29tcGlsZSBhcyAKLy8KLy8gICAgICBnKysgLWMg
dGVzdC5DIAovLwovLyBUbyBzZWUgaG93IG90aGVyIGZ1bmN0aW9ucyBhcmUgZG9pbmcgZmluZSwg
Y29tcGlsZSBhcwovLwovLyAgICAgIGcrKyAtYyB0ZXN0LkMgLVVTSE9XCi8vX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCi8vCi8vIFdPUktBUk9VTkQ6Ci8vCi8vIFRoZSBzb2x1dGlvbiBmb3IgdGhpcyBpcyBu
b3QgdG8gdXNlIHRoZSB0eXBlZGVmLCBidXQgdGhlIG9yaWdpbmFsCi8vIHRlbXBsYXRlPGNsYXNz
PiBzeW50YXguCi8vIEluIHRoaXMgcGFydGljdWxhciBleGFtcGxlLCBvbXVfUHJpbUludERpY3Rp
b25hcnkgd2lsbCBub3Qgd29yaywgYnV0Ci8vIHRoZSBvbXVfUHJpbURpY3Rpb25hcnk8aW50PiB3
aWxsLiBOb3RlIHRoYXQgb211X1ByaW1JbnREaWN0aW9uYXJ5IGlzCi8vIGp1c3QgYSB0eXBlZGVm
IG9mIG9tdV9QcmltRGljdGlvbmFyeTxpbnQ+LiAKLy9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KLy8KLy8g
U3VibWl0dGVyOiBOaWNrIE1vbnlhdG92c2t5IDxtb25AaGtzLmNvbT4gb3IgPG1AbG9hLmNvbT4K
Ly8gICAgICBEYXRlOiAyMDAwLzA3LzE1Ci8vICAgVmVyc2lvbjogZ2NjIHZlcnNpb24gZWdjcy0y
LjkxLjY2IDE5OTkwMzE0L0xpbnV4IChlZ2NzLTEuMS4yIHJlbGVhc2UpCi8vICAgIFN5c3RlbTog
TGludXggMi4yLjE0LTUuMCAoUmVkSGF0IDYuMSBvbiBJbnRlbCBQZW50aXVtIElJSSkKLy9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KCgojZGVmaW5lIFNIT1cKCiNpZiBkZWZpbmVkKFNIT1cpCiMgICBkZWZp
bmUgUFJPQkxFTV9GVU5DVElPTiBvcGVyYXRvcj09CiNlbHNlCiMgICBkZWZpbmUgUFJPQkxFTV9G
VU5DVElPTiBwcmV0dHlQcmludAojZW5kaWYKCgojaW5jbHVkZSA8aW9zdHJlYW0uaD4KCmNsYXNz
IG9tdV9QcmltaXRpdmUgewpwdWJsaWM6CiAgICB2aXJ0dWFsIGJvb2wgUFJPQkxFTV9GVU5DVElP
Tihjb25zdCBvbXVfUHJpbWl0aXZlICYpIGNvbnN0Owpwcm90ZWN0ZWQ6CiAgICBpbnQgdHlwZTsK
fTsKCnRlbXBsYXRlIDxjbGFzcyBUPgpjbGFzcyBvbXVfUHJpbURpY3Rpb25hcnkgOiBwdWJsaWMg
b211X1ByaW1pdGl2ZQp7CnB1YmxpYzoKICAgIHZpcnR1YWwgYm9vbCBQUk9CTEVNX0ZVTkNUSU9O
KGNvbnN0IG9tdV9QcmltaXRpdmUmIGFyZykgY29uc3Q7Cn07CgoKCnRlbXBsYXRlIDxjbGFzcyBU
Pgpib29sIG9tdV9QcmltRGljdGlvbmFyeTxUPjo6UFJPQkxFTV9GVU5DVElPTihjb25zdCBvbXVf
UHJpbWl0aXZlJiBhcmcpIGNvbnN0IAp7CiAgICBpZiAodHlwZSA+IDApIAoJcmV0dXJuIHRydWU7
CiAgICBlbHNlCiAgICAJcmV0dXJuIGZhbHNlOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vIFBST0JMRU0gSEVSRSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLwovLyBvcGVy
YXRvcj09IGZ1bmN0aW9uIGRvZXMgbm90IHdhbnQgdG8gaW5zdGFudGlhdGUgaXRzZWxmIGNvcnJl
Y3RseS4KLy8gICAgICAgICAgICBBbnkgb3RoZXIgZnVuY3Rpb24gaW4gaXRzIHBsYWNlIGluc3Rh
bnRpYXRlcyBpdHNlbGYgCi8vICAgICAgICAgICAgYXMgb211X1ByaW1EaWN0aW9uYXJ5PGludD4u
Li4sIGJ1dCBub3QgdGhlIG9wZXJhdG9yPT0uCi8vICAgICAgICAgICAgCi8vIFNPTFVUSU9OOiAg
RG8gbm90IHVzZSB0aGUgdHlwZWRlZi4gVXNlIHRoZSB1bmRlcmx5aW5nIHR5cGUgZGlyZWN0bHku
Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCgp0eXBlZGVmIG9tdV9QcmltRGljdGlvbmFyeTxpbnQ+IG9tdV9Q
cmltSW50RGljdGlvbmFyeTsKCnRlbXBsYXRlIDw+IAovL2Jvb2wgb211X1ByaW1EaWN0aW9uYXJ5
PGludD46OlBST0JMRU1fRlVOQ1RJT04oY29uc3Qgb211X1ByaW1pdGl2ZSYgYXJnKSBjb25zdCAK
Ym9vbCBvbXVfUHJpbUludERpY3Rpb25hcnk6OlBST0JMRU1fRlVOQ1RJT04oY29uc3Qgb211X1By
aW1pdGl2ZSYgYXJnKSBjb25zdCAKewogIGlmICh0eXBlID4gMCkgCiAgICAgcmV0dXJuIHRydWU7
CiAgZWxzZQogICAgIHJldHVybiBmYWxzZTsKfQo=

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