E
Exits Funnel
Hello,
I've inherited a bunch of C++ code which was developed on Windows and
I'm in the process of trying to port it to Linux/g++. The following is
similar to one very small piece of the code:
//Begin test1.cpp
template<class B>
class CHB
{ };
template <typename B>
struct BCBT
{
typedef typename CHB<B> BCB;
};
//End test1.cpp
When I try to compile the above, g++ complains thusly:
test1.cpp:9 syntax error before ';' token.
Presumably, this code compiles under MS Visual Studio 7.1. If I remove
the 'typename' from line nine, it's compilable under g++. Two questions
then:
1) Is it legal. In other words, should g++ complain?
2) If it is legal, what does it do? It's not clear to me what purpose
typname would serve in this particular context.
Thanks!
-exits
I've inherited a bunch of C++ code which was developed on Windows and
I'm in the process of trying to port it to Linux/g++. The following is
similar to one very small piece of the code:
//Begin test1.cpp
template<class B>
class CHB
{ };
template <typename B>
struct BCBT
{
typedef typename CHB<B> BCB;
};
//End test1.cpp
When I try to compile the above, g++ complains thusly:
test1.cpp:9 syntax error before ';' token.
Presumably, this code compiles under MS Visual Studio 7.1. If I remove
the 'typename' from line nine, it's compilable under g++. Two questions
then:
1) Is it legal. In other words, should g++ complain?
2) If it is legal, what does it do? It's not clear to me what purpose
typname would serve in this particular context.
Thanks!
-exits