[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

g++ template problem



Hi,

I'm struggling with trying to get g++ (4.0.3 20051201
(prerelease) (Debian 4.0.2-5)) to compile the
following code (which MSVC6 and SunForte have no
problem with):

#include <map>

template<class T>
class rc {
public:
	rc<T>() {}
};

class SString {
public:
	SString() {}
};


class classA {
public:
	classA() {}
};

typedef std::map<SString, rc<classA> > tmap; // this
works

template<class C>
class mymap {
public:
	typedef std::map<SString, rc<C> > mmap;

	typedef rc<C> rcC;
	typedef std::map<SString, rcC > mmap2;
	mymap<C>() {
		tmap::const_iterator ti;
		mmap::const_iterator mi;   // error: expected `;'
before 'mi'
		mmap2::const_iterator mi2; // error: expected `;'
before 'mi2'
	}
};

int
main(int argc, char *argv[]) {
	
	return 0;
}

ray@suni2:~/$ g++ --version
g++ (GCC) 4.0.3 20051201 (prerelease) (Debian 4.0.2-5)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying
conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.

ray@suni2:~/$ g++ test.cpp
test.cpp: In constructor 'mymap<C>::mymap()':
test.cpp:32: error: expected `;' before 'mi'
test.cpp:33: error: expected `;' before 'mi2'
ray@suni2:~/$


I cannot understand why g++ is not seeing mmap nor
mmap2 as a type of std::map, I've been trying various
work arounds and have now run out of ideas.

Is it a bug, or do I have to do something to be more
explicit?

Regards,
Ray


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



Reply to: