This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: C++ porting to GCC problem
- From: Philippe Haution <philippe_haution at yahoo dot fr>
- To: Alex Bond <alex_bond76 at hotmail dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Wed, 17 Nov 2004 16:59:06 +0100 (CET)
- Subject: Re: C++ porting to GCC problem
Hello,
gcc is right to reject this code, and it will accept :
typename T::Fish theFish = T::Cod;
Regards,
PH
--- Alex Bond <alex_bond76@hotmail.com> a écrit :
> Hi,
>
> I'm porting some C++ originally written in Visual
> Studio to GCC. I've hit
> one snag that I can't explain and I'd like to get
> some help please!
>
> The following bit of code is a simplified version of
> the full code, but it
> replicates the essential form of the problem
> exactly.
>
> When using g++ (v3.3.3 on Cygwin or v3.2 on Redhat)
> with no extra command
> line options, it produces a parse error at the
> indicated line. However when
> compiled under Borland 6 or SGI MIPs (with their
> ANSI switches turned on) it
> compiles with no whinges and produces the right
> output (the number 2) when
> run.
>
> Is this an illegal bit of syntax permitted by other
> compilers (I promise
> that there is a good reason for this structure in
> the original program!), or
> is it a g++ thing?
>
> Thanks in advance
>
>
> #include <iostream>
> using namespace std;
> /*------------------------------------*/
> class A
> {
> public:
> enum Fish
> {
> Carp,
> Haddock,
> Cod
> };
> };
>
> /*------------------------------------*/
> template<class T>
> class Z
> {
> public:
> Z(){}
>
> int MakeFish()
> {
> T::Fish theFish = T::Cod; <-------------Parse
> error here before ";"
>
> cout << theFish << endl;
> return 0;
> }
> };
>
> /*------------------------------------*/
> int main()
> {
> Z<A> hello;
>
> hello.MakeFish();
>
> return 0;
> }
>
>
>
Vous manquez d?espace pour stocker vos mails ?
Yahoo! Mail vous offre GRATUITEMENT 100 Mo !
Créez votre Yahoo! Mail sur http://fr.benefits.yahoo.com/
Le nouveau Yahoo! Messenger est arrivé ! Créez vos avatars et envoyez des audiofuns. Découvrez toutes les nouveautés en le téléchargeant sur : http://fr.messenger.yahoo.com