c++/8330: GCC 3.2 cannot deduce typename in derived template class.

brobanx@msn.com brobanx@msn.com
Wed Oct 23 20:56:00 GMT 2002


>Number:         8330
>Category:       c++
>Synopsis:       GCC 3.2 cannot deduce typename in derived template class.
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Wed Oct 23 20:16:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Adam Wall
>Release:        gcc version 3.2 (mingw special 20020817-1)
>Organization:
>Environment:
Windows XP Professional
>Description:
When a derived template class refers to a type defined in its (templated) base class by using the 'typename' keyword, a parse error is generated. Without the typename keyword, only a warning is generated, saying that implicit typenames are deprecated.
>How-To-Repeat:
g++ -ansi -c typename_bug.cpp -o typename_bug.o
>Fix:
Give a fully qualified name to the type.

ex: 'typename base_class<T>::base_type'
can replace
    'typename base_type'
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="typename_bug.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="typename_bug.cpp"

Ly8gICAgICAgIGcrKyAtdiAtYW5zaSAtYyB0eXBlbmFtZV9idWcuY3BwIC1vIHR5cGVuYW1lX2J1
Zy5vDQovLw0KLy8gSW4gdGhlIGNvZGUgYmVsb3csIGxpbmUgMTcgcHJvZHVjZXMgYSBwYXJzZSBl
cnJvciwgd2hlbiBhY2NvcmRpbmcgdG8gSVNPIEMrKw0KLy8gc3RhbmRhcmQgYmVoYXZpb3VyLCBp
dCBjbGVhcmx5IHJlZmVycyB0byBhICd0eXBlZGVmIHRvIGFuIGludCcgZm91bmQgaW4gdGhlDQov
LyBiYXNlIGNsYXNzLiBBIHNpbXBsZSB3b3JrLWFyb3VuZCBpcyBvbiBsaW5lIDE4LCBidXQgdGhp
cyBzaG91bGQgbm90DQovLyBiZSBuZWNjZXNzYXJ5LiBUaGUgc3RyYW5nZSB0aGluZyBpcyB0aGF0
IG9uIGxpbmUgMTYsIGl0IENBTiBwcm9wZXJseQ0KLy8gZGVkdWNlIHRoZSB0eXBlLCBhbmQgaXQg
Y29ycmVjdGx5IHdhcm5zIHRoYXQgdGhpcyBiZWhhdmlvdXIgaXMgZGVwcmVjYXRlZC4NCnRlbXBs
YXRlIDxjbGFzcyBCPg0KY2xhc3MgQmFzZSB7DQogIHByb3RlY3RlZDoNCiAgICB0eXBlZGVmIGlu
dCBiYXNlX3R5cGU7DQp9Ow0KDQp0ZW1wbGF0ZSA8Y2xhc3MgQz4NCmNsYXNzIERlcml2ZWQgOiBC
YXNlPEM+IHsNCiAgICBiYXNlX3R5cGUgazsgICAgICAgICAgICAgICAgICAgLy8gd2FybmluZzog
aW1wbGljaXQgdHlwZW5hbWUgaXMgZGVwcmVjYXRlZC4NCiAgICB0eXBlbmFtZSBiYXNlX3R5cGUg
aTsgICAgICAgICAgLy8gcGFyc2UgZXJyb3IgYmVmb3JlICc7JyB0b2tlbg0KICAgIHR5cGVuYW1l
IEJhc2U8Qz46OmJhc2VfdHlwZSBqOyAvLyB3b3JrcyBjb3JyZWN0bHkuDQp9Ow0KDQoNCg0KDQoN
Cg0KLyoNCg0KDQogICAgICAgICAgICAgICAgICAgSGVyZSBpcyB0aGUgY29tcGlsZXIgb3V0cHV0
IQ0KDQoNClJlYWRpbmcgc3BlY3MgZnJvbSBDOi9NaW5HVy9iaW4vLi4vbGliL2djYy1saWIvbWlu
Z3czMi8zLjIvc3BlY3MNQ29uZmlndXJlZCB3aXRoOiAuLi9nY2MvY29uZmlndXJlIC0td2l0aC1n
Y2MgLS13aXRoLWdudS1sZCAtLXdpdGgtZ251LWFzIC0taG9zdD1taW5ndzMyIC0tdGFyZ2V0PW1p
bmd3MzIgLS1wcmVmaXg9L21pbmd3IC0tZW5hYmxlLXRocmVhZHMgLS1kaXNhYmxlLW5scyAtLWVu
YWJsZS1sYW5ndWFnZXM9Zjc3LGMrKyxvYmpjLGFkYSAtLWRpc2FibGUtd2luMzItcmVnaXN0cnkg
LS1kaXNhYmxlLXNoYXJlZA1UaHJlYWQgbW9kZWw6IHdpbjMyDWdjYyB2ZXJzaW9uIDMuMiAobWlu
Z3cgc3BlY2lhbCAyMDAyMDgxNy0xKQ0gQzpcTWluR1dcYmluXC4uXGxpYlxnY2MtbGliXG1pbmd3
MzJcMy4yXGNjMXBsdXMuZXhlIC12IC1pcHJlZml4IEM6XE1pbkdXXGJpbi8uLi9saWIvZ2NjLWxp
Yi9taW5ndzMyLzMuMi8gLURfX0dOVUNfXz0zIC1EX19HTlVDX01JTk9SX189MiAtRF9fR05VQ19Q
QVRDSExFVkVMX189MCAtRF9fR1hYX0FCSV9WRVJTSU9OPTEwMiAtRF9XSU4zMiAtRF9fV0lOMzIg
LURfX1dJTjMyX18gLURfX1dJTjMyX18gLURfX01JTkdXMzJfXyAtRF9fTVNWQ1JUX18gLURfX1dJ
Tk5UX18gLURfWDg2Xz0xIC1EX19XSU4zMiAtRF9fV0lOTlQgLUFzeXN0ZW09d2lubnQgLURfX05P
X0lOTElORV9fIC1EX19TVERDX0hPU1RFRF9fPTEgLUFjcHU9aTM4NiAtQW1hY2hpbmU9aTM4NiAt
RF9faTM4NiAtRF9faTM4Nl9fIC1EX190dW5lX2k1ODZfXyAtRF9fdHVuZV9wZW50aXVtX18gLURf
X3N0ZGNhbGw9X19hdHRyaWJ1dGVfXygoX19zdGRjYWxsX18pKSAtRF9fY2RlY2w9X19hdHRyaWJ1
dGVfXygoX19jZGVjbF9fKSkgLURfX2Zhc3RjYWxsPV9fYXR0cmlidXRlX18oKF9fZmFzdGNhbGxf
XykpIC1EX19kZWNsc3BlYyh4KT1fX2F0dHJpYnV0ZV9fKCh4KSkgdHlwZW5hbWVfYnVnLmNwcCAt
RF9fR05VR19fPTMgLURfX0RFUFJFQ0FURUQgLURfX0VYQ0VQVElPTlMgLURfX1NUUklDVF9BTlNJ
X18gLXRyaWdyYXBocyAtJCAtcXVpZXQgLWR1bXBiYXNlIHR5cGVuYW1lX2J1Zy5jcHAgLWFuc2kg
LWFuc2kgLXZlcnNpb24gLW8gQzpcV0lORE9XU1xURU1QL2NjS21hYWFhLnMNR05VIENQUCB2ZXJz
aW9uIDMuMiAobWluZ3cgc3BlY2lhbCAyMDAyMDgxNy0xKSAoY3BwbGliKSAoODAzODYsIEJTRCBz
eW50YXgpDUdOVSBDKysgdmVyc2lvbiAzLjIgKG1pbmd3IHNwZWNpYWwgMjAwMjA4MTctMSkgKG1p
bmd3MzIpDQljb21waWxlZCBieSBHTlUgQyB2ZXJzaW9uIDMuMi4NaWdub3Jpbmcgbm9uZXhpc3Rl
bnQgZGlyZWN0b3J5ICJDOi9NaW5HVy9taW5ndzMyL2luY2x1ZGUiDWlnbm9yaW5nIG5vbmV4aXN0
ZW50IGRpcmVjdG9yeSAiL21pbmd3L21pbmd3MzIvaW5jbHVkZSINaWdub3Jpbmcgbm9uZXhpc3Rl
bnQgZGlyZWN0b3J5ICIvdXNyL2xvY2FsL21pbmd3MzIvaW5jbHVkZSINI2luY2x1ZGUgIi4uLiIg
c2VhcmNoIHN0YXJ0cyBoZXJlOg0jaW5jbHVkZSA8Li4uPiBzZWFyY2ggc3RhcnRzIGhlcmU6DSBD
Oi9NaW5HVy9pbmNsdWRlL2MrKw0gQzovTWluR1cvaW5jbHVkZS9jKysvMy4yDSBDOi9NaW5HVy9p
bmNsdWRlL2MrKy8zLjIvbWluZ3czMg0gQzovTWluR1cvaW5jbHVkZS9jKysvMy4yL2JhY2t3YXJk
DSBDOi9NaW5HVy9pbmNsdWRlDSBDOi9NaW5HVy9saWIvZ2NjLWxpYi9taW5ndzMyLzMuMi9pbmNs
dWRlDSAvbWluZ3cvaW5jbHVkZS9jKysvMy4yDSAvbWluZ3cvaW5jbHVkZS9jKysvMy4yL21pbmd3
MzINIC9taW5ndy9pbmNsdWRlL2MrKy8zLjIvYmFja3dhcmQNIC9taW5ndy9pbmNsdWRlDSAvbWlu
Z3cvaW5jbHVkZQ0gL21pbmd3L2xpYi9nY2MtbGliL21pbmd3MzIvMy4yL2luY2x1ZGUNRW5kIG9m
IHNlYXJjaCBsaXN0Lg10eXBlbmFtZV9idWcuY3BwOjE2OiB3YXJuaW5nOiBgdHlwZW5hbWUgRGVy
aXZlZDxDPjo6YmFzZV90eXBlJyBpcyBpbXBsaWNpdGx5IGENICAgdHlwZW5hbWUNdHlwZW5hbWVf
YnVnLmNwcDoxNjogd2FybmluZzogaW1wbGljaXQgdHlwZW5hbWUgaXMgZGVwcmVjYXRlZCwgcGxl
YXNlIHNlZSB0aGUNICAgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscw10eXBlbmFtZV9idWcuY3Bw
OjE3OiBwYXJzZSBlcnJvciBiZWZvcmUgYDsnIHRva2VuDQoNCiovDQo=



More information about the Gcc-bugs mailing list