Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C++] "impliciete" typedef?

Pagina: 1
Acties:

  • netvor
  • Registratie: September 2000
  • Laatst online: 08-04-2024
Uit de wereld van het goede oude C kennen we deze constructie:
C:
1
2
typedef enum { FIRE, EARTH, AIR, WATER } Element;
Element myElement = EARTH;


Echter, mijn C++ compiler heeft geen enkel probleem met:
C++:
1
2
enum Element { FIRE, EARTH, AIR, WATER };
Element myElement = EARTH;


Nu heb ik helaas alleen MSVC 6.0 ter beschikking, dus mijn vraag is, is deze tweede constructie echt geldig in C++98 of is dit weer zo'n gevalletje van MSVC die de standaard aan z'n laars lapt?

Computer Science: describing our world with boxes and arrows.


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Ik heb geen ANSI verwijzing voor je, maar volgens mij en GCC mag het gewoon :P Ik zie ook geen reden waarom het niet zou mogen, in C++ heb je immers wel meer typedeclaraties die niet via typedef gaan.

  • user109731
  • Registratie: Maart 2004
  • Niet online
Volgens mij is dit gewoon C++, en volgens deze tutorial ook.

Bovendien werkt het onder GCC ook gewoon :)

  • Marcj
  • Registratie: November 2000
  • Laatst online: 15:16
In ISO 14882 staat ook gewoon letterlijk dit voorbeeld op pagina 110.

[ Voor 3% gewijzigd door Marcj op 01-08-2007 10:30 ]


  • netvor
  • Registratie: September 2000
  • Laatst online: 08-04-2024
Bedankt, marcj! Ik kon de tekst van de standaard nergens vinden; m'n homedir heeft nu een nieuwe aanwinst. :*)

Maar ik dacht altijd dat men normaal gesproken voor een ISO standaard moet betalen...of is dat alleen bij ITU-T?

Computer Science: describing our world with boxes and arrows.


  • Marcj
  • Registratie: November 2000
  • Laatst online: 15:16
Gewoon zoeken naar "iso/iec 14882", en achter dat nummer kwam ik via wikipedia. De meeste ISO documenten zijn dacht ik gewoon te vinden...

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Wat het echter niet minder illegaal maakt overigens ;). Overigens is 1998 alweer oud, de meest recente is ISO 14882-2003 (maar wordt amper geimplementeerd), en de laatste 0x draft staat hier (mocht je geinteresseerd zijn in de nieuwe ontwikkelingen op het gebied van C++ ;) en deze pagina is dan ook wel interessant)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Overigens is de tweede vorm niet alleen echt, maar zelfs de beste vorm. De eerste vorm introduceert een anoniem type, en vervolgens een typedef naar een anoniem type. De tweede vorm introduceert simpelweg het type wat je al de hele tijd wilde.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1