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]

c++/1929: template "nested" class problem



>Number:         1929
>Category:       c++
>Synopsis:       template "nested" class problem
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Feb 10 13:56:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Xavier MAILLARD (fxgs project director)
>Release:        2.94.x
>Organization:
>Environment:
HPUX 10.20 and Linux (mandrake version 6.1) 
>Description:
I made a few time ago, a template class for doublylinked list.
I made it using smart pointer. The organization of the class
was made as follow :

template <class X> list
{
	class cell
	{
		//body
	}
	class head //class storing the list head adress with the smart ptr
	{
		//body
	}
	public:
	//body class list
	class parc //stepper class for the list
};

As you know using data structure is often leading you to sort it
So I wanted to do some quicksort algorithm using my class. 
What was my surprise when I saw that using directly the list<X>::parc made my compiler 
bugging.
>How-To-Repeat:

>Fix:
I found a way to avoid it : I created another stepper class inherited from
list<X>::parc without nothing except a constructor.

Then I could apply my algorithm with the list class.
(ie. my file attachement)
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="tri.h"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="tri.h"

I2luY2x1ZGUgImxpc3RlZGNjLmgiCgoKdGVtcGxhdGUgPGNsYXNzIFg+IGlubGluZSB2b2lkIHN3
YXAoWCAmIGEsIFggJiBiKQp7CglYIHRtcChiKTsKCWI9YTsKCWE9dG1wOwp9CgoKLy9ib2d1ZSBk
dSBjb21waWxvIDotKSA9PiBjbGFzc2UgcG91ciBwb3V2b2lyIGZhaXJlIGxlIHRyaSBRU29ydCAh
ISEKdGVtcGxhdGUgPGNsYXNzIFg+IGNsYXNzIFBQYXJjOiBwdWJsaWMgbGlzdGU8WD46OlBhcmMK
ewoJcHVibGljOgoJCVBQYXJjKGNvbnN0IGxpc3RlIDxYPjo6UGFyYyAmIHApCgkJOmxpc3RlPFg+
OjpQYXJjKHApCgkJe30KfTsKCnRlbXBsYXRlIDxjbGFzcyBYPiB2b2lkIFFTKFBQYXJjPFg+ICYg
UDEsIFBQYXJjPFg+ICYgUDIpCnsKCWlmKFAxIT1QMikKCXsKCQlsaXN0ZTxYPjo6UGFyYyBwMihQ
Mik7CgkJWCAqIHA9JigtLXAyKTsKCQlpZihQMSE9cDIpCgkJewoJCQlsaXN0ZTxYPjo6UGFyYyBw
MShQMSk7CgkJCVggKiBjMSwgKmMyPXA7CgkJCWRvCgkJCXsKCQkJCXdoaWxlKCooYzE9JihwMSsr
KSk8KnApOwoJCQkJd2hpbGUoYzEhPWMyICYmICooYzI9JigtLXAyKSk+PSpwKTsKCQkJCWlmKGMx
IT1jMikKCQkJCQlzd2FwKCpjMSwqYzIpOwoJCQl9CgkJCXdoaWxlKGMxIT1jMik7CgkJCWlmKGMx
IT1wKQoJCQkJc3dhcCgqYzEsKnApOwoJCQkKCQkJLy9wb3VyIGV2aXRlciBsZXMgd2FybmluZ3Mg
ZCdpbml0IGR1IHN0eWxlIFBQYXJjPFg+IChwMSkuLi4KCQkJUFBhcmM8WD4gUDMocDIpOwoJCQlQ
UGFyYzxYPiBQNChwMSk7CgkJCQoJCQkKCQkJUVMoUDEsUDMpOwoJCQlRUyhQNCxQMik7CgkJfQoJ
fQp9Cgp0ZW1wbGF0ZSA8Y2xhc3MgWD4gdm9pZCBRdWlja1NvcnQobGlzdGU8WD4gJiBsKQp7Cgls
aXN0ZTxYPjo6UGFyYyBwMShsKTsKCWxpc3RlPFg+OjpQYXJjIHAyKGwpOwoJcDEuQWxsZXJEZWJ1
dCgpOwoJcDIuQWxsZXJGaW4oKTsKCQoJLy9wb3VyIGV2aXRlciBsZXMgd2FybmluZ3MgZCdpbml0
IGRlIFBQYXJjPFg+IChwMSkuLi4KCVBQYXJjPFg+IFAxKHAxKTsKCVBQYXJjPFg+IFAyKHAyKTsK
CQoJLy9vbiBhcHBlbGxlIFFTCglRUyhQMSxQMik7Cn0KCnRlbXBsYXRlIDxjbGFzcyBYPiBYIE1p
bmltdW0obGlzdGU8WD4gJiBsKQp7CglsaXN0ZTxYPjo6UGFyYyBwKGwpOwoJcC5BbGxlckRlYnV0
KCk7CglYIG1pbj1wKys7Cgl3aGlsZSghcC5GaW4oKSkKCXsKCQlpZihtaW4+cCsrKQoJCXsKCQkJ
LS1wOwoJCQltaW49cCsrOwoJCX0KCX0KCQoJcmV0dXJuIG1pbjsKfQoKdGVtcGxhdGUgPGNsYXNz
IFg+dm9pZCBUcmlTZWxlY3Rpb24obGlzdGU8WD4gJiBsKQp7CglsaXN0ZSA8WD46OlBhcmMgcDEo
bCk7CglsaXN0ZSA8WD46OlBhcmMgcDIobCk7CglwMS5BbGxlckRlYnV0KCk7CglwMi5BbGxlckRl
YnV0KCk7CglwMisrOwoJd2hpbGUoIXAyLkZpbigpKQoJewoJCWlmKHAxKys+cDIrKykKCQkJc3dh
cCgtLXAxLC0tcDIpOwoJCWVsc2UKCQkJLS1wMSwtLXAyOwoJCXAxKys7CgkJcDIrKzsKCX0KfQoK
I2RlZmluZSBJbnN0VHJpKFQpCQkJXAoJdGVtcGxhdGUgY2xhc3MgUFBhcmM8VD47CQlcCgl0ZW1w
bGF0ZSB2b2lkIFFTPFQ+KFBQYXJjPFQ+ICYgLCBQUGFyYzxUPiAmICk7IFwKCXRlbXBsYXRlIHZv
aWQgUXVpY2tTb3J0PFQ+KGxpc3RlPFQ+ICYgKTsK


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