Toon posts:

[C++] Visual Studio 6 vs Visual Studio.NET

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wat zijn de voordelen boven Visual Studio.NET t.o.v. Visual Studio 6 (C++), voor iemand die kleine 1-persoons projectjes maakt?

Ik maak dan vooral kleinschalige programma's zoals; 3D demos met OpenGL, game engines met de stl en dll's, kleine 2d games..

Zijn er bepaalde vorderingen in .NET mbt de C++ compiler implementatie? In VS6 bijv. moet je een hele template maken in een .h file, ik bedoel je kan de declaratie en implementatie (juiste term weet ik niet meer) niet scheiden zoals bij classes, terwijl dat wel hoort te kunnen. Kan dat nu wel?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:01

.oisyn

Moderator Devschuur®

Demotivational Speaker

in C developtool met pulldown hulp (geen c++) werden een aantal nieuwe features genoemd van vs.net tov vs6

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.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:01

.oisyn

Moderator Devschuur®

Demotivational Speaker

De compiler zelf is op veel fronten verbeterd, vooral op template gebied. Hij accepteert nu ingewikkelde constructies waarvan vc6 over z'n nek ging, plus er worden dingen uit de standaard ondersteund die vc6 niet ondersteunde (zoals bijvoorbeeld de function try block)

Overigens zijn nog niet alle bugjes eruit: [rml][ C++] template error: member function already defined[/rml] ;)

En de IDE werkt gewoon een stuk lekkerder.


Wat betreft template implementatie scheiden van declaratie... kan dat uberhaupt dan? Als je de template 'instantieert' door een nieuw type te introduceren dan moet er ook nieuwe code gegenereerd worden. Hoe kan de compiler dat doen als hij de code niet kent?
(Theoretisch is het natuurlijk wel mogelijk: je kunt de code alvast parsen en de abstract syntax tree op slaan in een object file, en als er een nieuw type is dan kan de code gecompileerd worden. Maar dat past weer niet in het standaard preprocess -> compile -> link rijtje)

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.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Verwijderd schreef op 16 september 2002 @ 17:53:
Zijn er bepaalde vorderingen in .NET mbt de C++ compiler implementatie? In VS6 bijv. moet je een hele template maken in een .h file, ik bedoel je kan de declaratie en implementatie (juiste term weet ik niet meer) niet scheiden zoals bij classes, terwijl dat wel hoort te kunnen. Kan dat nu wel?
Nee dit kan niet en zal per definitie nooit kunnen. Nettere praktijk is overigens wel om de template-implementatie in een .inl (inline) file te stoppen zodat je alsnog implementatie en definitie kunt scheiden.

Ennuh, ik vind voor zowel m'n 1-persoons als teamprojecten VS.net veel prettiger werken. Of het als particulier 1500+ euro waard is is een tweede... :)

Professionele website nodig?


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:01

.oisyn

Moderator Devschuur®

Demotivational Speaker

curry684 schreef op 16 september 2002 @ 20:44:
[...]

Nee dit kan niet en zal per definitie nooit kunnen.
in principe wel (zie mijn vorige post) :)
Bovendien zegt MS er dit over:
Differences from Other Implementations

The following list shows some differences between Microsoft C++ and other compilers. Note that this list will change in future versions of the compiler.

• The compiler cannot instantiate a template outside of the module in which it is defined.
dat impliceert dus dat het wel mogelijk is met andere compilers
Nettere praktijk is overigens wel om de template-implementatie in een .inl (inline) file te stoppen zodat je alsnog implementatie en definitie kunt scheiden.
het is alleen vervelend dat je (in MSVC) template member-functions van een templateclass niet buiten de klasse mag definieren :)
Ennuh, ik vind voor zowel m'n 1-persoons als teamprojecten VS.net veel prettiger werken. Of het als particulier 1500+ euro waard is is een tweede... :)


de goedkoopste is $529 (voor de Pro versie), aldus flipcode

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: 21-08 17:14
.oisyn schreef op 16 september 2002 @ 20:59:
de goedkoopste is $529 (voor de Pro versie), aldus flipcode
Learning edition is minder dan E200, dacht ik.

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


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Verwijderd schreef op 16 september 2002 @ 17:53:
Zijn er bepaalde vorderingen in .NET mbt de C++ compiler implementatie? In VS6 bijv. moet je een hele template maken in een .h file, ik bedoel je kan de declaratie en implementatie (juiste term weet ik niet meer) niet scheiden zoals bij classes, terwijl dat wel hoort te kunnen. Kan dat nu wel?
Nee, de enige compiler die dat nu kan is Comeau 4.3.0 ($43, van www.comeaucomputing.com). Evengoed is VC++.NET een behoorlijke stap vooruit. Zelf vond ik de STL update het belangrijkst; ze hebben een nieuwe versie ingekocht. VS6 had nog dezelfde STL als VS5, uit 97 of zo. Maar ook de compiler is behoorlijk vernieuwd; zeker op template gebied. Member templates, template template parameters en function template parameters buiten de argumenten lijst werken nu allemaal.

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