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

mon@hks.com mon@hks.com
Sat Jul 15 22:26:00 GMT 2000


>Number:         414
>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:26:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Nick Monyatovsky
>Release:        unknown-1.0
>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/x-unknown-content-type-CodeWarrior_c; name="instantiationProblem.C"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="instantiationProblem.C"

Ly8gDQovLyBUaGlzIGV4YW1wbGUgc2hvd3MgdGhlIHByb2JsZW0gb2YgaW5zdGFudGlhdGluZyB0
aGUgJ29wZXJhdG9yPT0nDQovLyBmdW5jdGlvbiB1c2luZyBhIHR5cGVkZWYuIEFueSBvdGhlciBm
dW5jdGlvbiBiZXNpZGUgdGhhdCBvcGVyYXRvciANCi8vIGluc3RhbnRpYXRlcyBjb3JyZWN0bHku
DQovLw0KLy8NCi8vIFRvIHNlZSB0aGUgcHJvYmxlbSwgY29tcGlsZSBhcyANCi8vDQovLyAgICAg
IGcrKyAtYyB0ZXN0LkMgDQovLw0KLy8gVG8gc2VlIGhvdyBvdGhlciBmdW5jdGlvbnMgYXJlIGRv
aW5nIGZpbmUsIGNvbXBpbGUgYXMNCi8vDQovLyAgICAgIGcrKyAtYyB0ZXN0LkMgLVVTSE9XDQov
L19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXw0KLy8NCi8vIFdPUktBUk9VTkQ6DQovLw0KLy8gVGhlIHNvbHV0
aW9uIGZvciB0aGlzIGlzIG5vdCB0byB1c2UgdGhlIHR5cGVkZWYsIGJ1dCB0aGUgb3JpZ2luYWwN
Ci8vIHRlbXBsYXRlPGNsYXNzPiBzeW50YXguDQovLyBJbiB0aGlzIHBhcnRpY3VsYXIgZXhhbXBs
ZSwgb211X1ByaW1JbnREaWN0aW9uYXJ5IHdpbGwgbm90IHdvcmssIGJ1dA0KLy8gdGhlIG9tdV9Q
cmltRGljdGlvbmFyeTxpbnQ+IHdpbGwuIE5vdGUgdGhhdCBvbXVfUHJpbUludERpY3Rpb25hcnkg
aXMNCi8vIGp1c3QgYSB0eXBlZGVmIG9mIG9tdV9QcmltRGljdGlvbmFyeTxpbnQ+LiANCi8vX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fDQovLw0KLy8gU3VibWl0dGVyOiBOaWNrIE1vbnlhdG92c2t5IDxtb25A
aGtzLmNvbT4gb3IgPG1AbG9hLmNvbT4NCi8vICAgICAgRGF0ZTogMjAwMC8wNy8xNQ0KLy8gICBW
ZXJzaW9uOiBnY2MgdmVyc2lvbiBlZ2NzLTIuOTEuNjYgMTk5OTAzMTQvTGludXggKGVnY3MtMS4x
LjINCnJlbGVhc2UpDQovLyAgICBTeXN0ZW06IExpbnV4IDIuMi4xNC01LjAgKFJlZEhhdCA2LjEg
b24gSW50ZWwgUGVudGl1bSBJSUkpDQovL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KDQoNCiNkZWZpbmUg
U0hPVw0KDQojaWYgZGVmaW5lZChTSE9XKQ0KIyAgIGRlZmluZSBQUk9CTEVNX0ZVTkNUSU9OIG9w
ZXJhdG9yPT0NCiNlbHNlDQojICAgZGVmaW5lIFBST0JMRU1fRlVOQ1RJT04gcHJldHR5UHJpbnQN
CiNlbmRpZg0KDQoNCiNpbmNsdWRlIDxpb3N0cmVhbS5oPg0KDQpjbGFzcyBvbXVfUHJpbWl0aXZl
IHsNCnB1YmxpYzoNCiAgICB2aXJ0dWFsIGJvb2wgUFJPQkxFTV9GVU5DVElPTihjb25zdCBvbXVf
UHJpbWl0aXZlICYpIGNvbnN0Ow0KcHJvdGVjdGVkOg0KICAgIGludCB0eXBlOw0KfTsNCg0KdGVt
cGxhdGUgPGNsYXNzIFQ+DQpjbGFzcyBvbXVfUHJpbURpY3Rpb25hcnkgOiBwdWJsaWMgb211X1By
aW1pdGl2ZQ0Kew0KcHVibGljOg0KICAgIHZpcnR1YWwgYm9vbCBQUk9CTEVNX0ZVTkNUSU9OKGNv
bnN0IG9tdV9QcmltaXRpdmUmIGFyZykgY29uc3Q7DQp9Ow0KDQoNCg0KdGVtcGxhdGUgPGNsYXNz
IFQ+DQpib29sIG9tdV9QcmltRGljdGlvbmFyeTxUPjo6UFJPQkxFTV9GVU5DVElPTihjb25zdCBv
bXVfUHJpbWl0aXZlJiBhcmcpDQpjb25zdCANCnsNCiAgICBpZiAodHlwZSA+IDApIA0KCXJldHVy
biB0cnVlOw0KICAgIGVsc2UNCiAgICAJcmV0dXJuIGZhbHNlOw0KfQ0KDQovLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vIFBST0JMRU0gSEVSRSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Lw0KLy8NCi8vIG9wZXJhdG9yPT0gZnVuY3Rpb24gZG9lcyBub3Qgd2FudCB0byBpbnN0YW50aWF0
ZSBpdHNlbGYgY29ycmVjdGx5Lg0KLy8gICAgICAgICAgICBBbnkgb3RoZXIgZnVuY3Rpb24gaW4g
aXRzIHBsYWNlIGluc3RhbnRpYXRlcyBpdHNlbGYgDQovLyAgICAgICAgICAgIGFzIG9tdV9Qcmlt
RGljdGlvbmFyeTxpbnQ+Li4uLCBidXQgbm90IHRoZSBvcGVyYXRvcj09Lg0KLy8gICAgICAgICAg
ICANCi8vIFNPTFVUSU9OOiAgRG8gbm90IHVzZSB0aGUgdHlwZWRlZi4gVXNlIHRoZSB1bmRlcmx5
aW5nIHR5cGUgZGlyZWN0bHkuDQovLw0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KdHlwZWRlZiBvbXVfUHJp
bURpY3Rpb25hcnk8aW50PiBvbXVfUHJpbUludERpY3Rpb25hcnk7DQoNCnRlbXBsYXRlIDw+IA0K
Ly9ib29sIG9tdV9QcmltRGljdGlvbmFyeTxpbnQ+OjpQUk9CTEVNX0ZVTkNUSU9OKGNvbnN0IG9t
dV9QcmltaXRpdmUmIGFyZykgY29uc3QgDQpib29sIG9tdV9QcmltSW50RGljdGlvbmFyeTo6UFJP
QkxFTV9GVU5DVElPTihjb25zdCBvbXVfUHJpbWl0aXZlJiBhcmcpDQpjb25zdCANCnsNCiAgaWYg
KHR5cGUgPiAwKSANCiAgICAgcmV0dXJuIHRydWU7DQogIGVsc2UNCiAgICAgcmV0dXJuIGZhbHNl
Ow0KfQ0K


More information about the Gcc-prs mailing list