Bamseyoung Postad 24 december, 2012 Share Postad 24 december, 2012 Hur vet jag om kompilatorn kompilerar med c++11 standarden när jag skriver g++? Har gcc version 4.6.3. Testade att skriva g++ -std=c++11 -pedantic -Wall -Wextra [filnamn.cpp] men får då felmeddelande "cc1plus: error: unrecognized command line option '-std=c++11'" Så den kanske redan kompilerar med c++11 standarden? Jag vill lära mig hur den nya "slumpgeneratorn" fungerar som ska finnas i c++11.Om ni kan den får ni gärna berätta hur den fungerar. Istället för det gamla sättet srand(time(0); cout << rand()%6+1<< endl; om man kan skriva såhär om jag förstår det rätt? http://www.cplusplus...evice/operator()/ random_device random; random()%6+1; Självklart har jag inkluderat respektive bibliotek som behövs. Länk till kommentar Dela på andra webbplatser More sharing options...
Bamseyoung Postad 24 december, 2012 Författare Share Postad 24 december, 2012 Har löst det. Länk till kommentar Dela på andra webbplatser More sharing options...
Hummel Postad 25 december, 2012 Share Postad 25 december, 2012 Hur löste du det? Länk till kommentar Dela på andra webbplatser More sharing options...
lar-sode Postad 25 december, 2012 Share Postad 25 december, 2012 Flaggan skall vara följande om det skall fungera i gcc -std=c++0x Länk till kommentar Dela på andra webbplatser More sharing options...
Bamseyoung Postad 25 december, 2012 Författare Share Postad 25 december, 2012 Hur löste du det? Prövade detta http://superuser.com...4/394811#394811(byt självklart ut 4.6 till 4.7) för att installera senaste gcc versionen 4.7.2 Provade själv före med att bara skriva sudo apt-get install gcc-4.7 sudo apt-get install g++-4.7 men tydligen så fungerar inte det, den laddade ner en massa saker fast med en närmare koll med "gcc --version" så visade den fortfarande den gamla versionen. Dock till slut så kunde jag köra med -std=c++11 istället för -std=c++0x som tydligen gällde för gcc 4.6.3. Länk till kommentar Dela på andra webbplatser More sharing options...
Bamseyoung Postad 25 december, 2012 Författare Share Postad 25 december, 2012 Flaggan skall vara följande om det skall fungera i gcc -std=c++0x Märkte det med lite sökande på google. Men är nu fixade med senaste uppdateringen av gcc så kan skriva -std=c++11 Men varför ska man ange dessa flaggor? Är det inte rätt så självklart när man har den senaste versionen av en kompilator att den ska kompilera med det allra senaste finesserna utan att man verkligen ska behöva lägga till denna flagga? Inte direkt att filerna går sönder om man kompilerar ett innehåll som inte har någon kod av de senaste finesserna med c++11. Länk till kommentar Dela på andra webbplatser More sharing options...
lar-sode Postad 25 december, 2012 Share Postad 25 december, 2012 Märkte det med lite sökande på google. Men är nu fixade med senaste uppdateringen av gcc så kan skriva -std=c++11 Men varför ska man ange dessa flaggor? Är det inte rätt så självklart när man har den senaste versionen av en kompilator att den ska kompilera med det allra senaste finesserna utan att man verkligen ska behöva lägga till denna flagga? Inte direkt att filerna går sönder om man kompilerar ett innehåll som inte har någon kod av de senaste finesserna med c++11. Är väll rätt få befintliga c++ projekt som de facto har gått över och nyttjar vissa "features" i c++11 viket gör att om detta skulle vara standard inställningen skulle många befintliga c++ projekt och deras byggsystem som ex make inte bygga vilket kanske skulle skapa mer problem än om man vet med sig att man byggt något med den absolut senaste tekniken och då anger den explicit i sin make fil, för väldigt få sitter ju och handknackar sina byggskricpt direkt i terminalen utan använder sig exempelvis av en make-fil eller liknande byggsystem för sin c++ kod. Länk till kommentar Dela på andra webbplatser More sharing options...
Hummel Postad 25 december, 2012 Share Postad 25 december, 2012 När man startar upp ett projekt väljer man utvecklingsmiljö. Om du mitt i ett projekt byter version på kompilatorn så måste alla tester osv göras om, kan bli väldigt kostsamt. Länk till kommentar Dela på andra webbplatser More sharing options...
lar-sode Postad 25 december, 2012 Share Postad 25 december, 2012 När man startar upp ett projekt väljer man utvecklingsmiljö. Om du mitt i ett projekt byter version på kompilatorn så måste alla tester osv göras om, kan bli väldigt kostsamt. Precis! Man byter nog tidigast kompilatorversion efter en release annars är overheaden för att garantera projektets integritet för högt för att det skall ge en vettig ROI (Return of investnent). Länk till kommentar Dela på andra webbplatser More sharing options...
Rekommendera Poster
Arkiverat
Det här ämnet är nu arkiverat och är stängt för ytterligare svar.