Gå til innhold

C++'s (nyere) historie


Anbefalte innlegg

Kan noen si i korte trekk historien mht språket C++ f.o.m. ca 1998 (evt linke til innlegg om dette)? Ser at mange av dere snakker om C++0x, feks. Såvidt jeg kan se ble C++ en ANSI standard ca i 1998, og at det så var en slags revisjon i 2003(C++03?) og noe nytt nå i det siste? /Sigdal

 

Edit: Dette var en grei link - http://en.wikipedia.org/wiki/C%2B%2B0x

 

Det ser ut som da at jeg ikke kan bruke bøker om C++ fra etter ca 2003 om det skal være kompatibelt med MSVisual C++6.0 (Evt må jeg da vite spesifikt om nyhetene som ble introdusert i C++03).

Endret av Sigdal
Lenke til kommentar
Videoannonse
Annonse

Hvilke fordeler vil jeg ha med VC++10 når det kun gjelder numeriske algoritmer?

Support, støtte for instruksjonssettet i dagens prosessorer, bedre optimalisering? På den annen side, ingen nye features = ingen nye bugs ... ..

Men 64-bit kan da være verdt det? Som regel er det 50% ekstra ytelse å hente bare på det (selvsagt avhengig av programmet, men dette er min erfaring fra C++ Raytraceren jeg skrev). Dessuten har nyere VC++ støtte for utvidede instruksjonsett som SSE, OpenMT (for enkel og effektiv utnytting av flere kjerner) og en rekke andre ting. VC10 har også en del C++0x utvidelser implementert, som lambdauttrykk.

Lenke til kommentar

Påstand: med VC++6 kan jeg starte instantiere programmer vha COM automasjon og multitreading, og fordele de på flere cpu kjerner. Den funksjonaliteten finnes allerede i VC++6 (tror jeg).

Endret av Sigdal
Lenke til kommentar

VC++ 6.0 mangler OpenMP støtte. Du kan få til multithreading, men det er mye enklere med OpenMP.

 

#pragma omp parallell for
for(int i = 0; i < 4; i++) // Iterasjonene fordeles over flere tråder.
{
}

Som er noe av det samme som Parallell.For i .NET 4.0.

 

Om du trenger dette er selvsagt opp til deg.

Lenke til kommentar

Påstand: med VC++6 kan jeg starte instantiere programmer vha COM automasjon og multitreading, og fordele de på flere cpu kjerner. Den funksjonaliteten finnes allerede i VC++6 (tror jeg).

 

Om du ikke har eller vil bruke penger på VC++10 kan GCC, eller MinGW som er navnet på Windows-porten av GCC, være et alternativ. Denne støtter ekte multitråding (flere CPUer/kjerner), moderne CPU-funksjonalitet (SSE, o.s.v.) m.m.. I tillegg støttes GCC på flere plattformer; Windows, Mac, Linux og andre.

 

Ser http://www.codeblocks.org/ nevnt som et bra grafisk miljø for GCC/MinGW på Windows.

 

edit:

En oversikt over støtte for C++0x i GCC finnes her:

http://gcc.gnu.org/projects/cxx0x.html

 

(..en sammenligning: http://wiki.apache.org/stdcxx/C++0xCompilerSupport ..)

 

..og en oversikt over støtten for C99:

http://gcc.gnu.org/c99status.html

Endret av worseisworser
Lenke til kommentar

Hva er "uekte" med VC++6 sin multitråding?

 

Jeg tror ikke det er noen forskjell der; GCC/MinGW kan ta i bruk de samme native Win32 APIer og biblioteker som VC++6/10 m.t.p. håndtering av tråder.

 

edit:

Jeg ville i alle tilfeller neppe tatt i brukt en type 1998 kompiler sånn uten videre i dag; den er eldgammel og vil generere sub-optimal kode for hver CPU/kjerne du har på maskinen. I tillegg er det rimelig å anta at den har bugs -- selv etter patching v.h.a. service-packs, og at dette kan skape problemer for din kode eller kode/biblioteker du ønsker å ta i bruk.

Endret av worseisworser
Lenke til kommentar

her er en tråd som gir litt argumenter for og mot det å oppgradere.

http://stackoverflow.com/questions/191253/what-are-some-convincing-arguments-to-upgrade-from-visual-studio-6

 

selv ville jeg brukt 2010 (nyeste) versionen.

 

Grunnen til at jeg ikke ville brukt vc6 selv:

- jeg bruker masse 3parts bibloteker som ikke støtter vc6

- templates funker bare ikke skikkelig i v6

- stl string implementasjonen er ikke thread safe

- støtter ikke x64

- mcf er halvferdig (ble oppdatert i vc2008 i en service pack)

 

Om du installerer alle patcher og service packs til vc6 så får du noe som funker greit nok og i de fleste tilfeller vil det være bra nok. Men skal du lage noe vista/w7 stuff bør du oppgradere med en gang.

Lenke til kommentar

Ok. Det var nyttig å vite. Nå ser det ut som jeg kan slippe unna uten multitråding i koden laget med VC6++, uten tap av ytelse. Kompilert, enkel 32bits kode laget med VC++6 vil kjøre greit også på en maskin med 64bits W7? (Det er ikke VC++6 koden som er kritisk mht ytelse, den må bare kunne kjøre på samme måte som den gjør nå i 32bits XP).

Endret av Sigdal
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...