GCC

Programinė įranga Screenshot:
GCC
Programinė detalės:
Versija: 8.2.0 Atnaujintas
Įkėlimo datą: 16 Aug 18
Kūrėjas: The GCC Team
Licencija: Nemokamai
Populiarumas: 182

Rating: 3.0/5 (Total Votes: 3)

GCC (GNU kompiliatorių kolekcija) yra atviro kodo komandinės eilutės programinė įranga, sukurta kaip kompiliatorius GNU / Linux ir BSD operacinėms sistemoms. Tai apima daugelio programavimo kalbų, įskaitant "Objective-C", "Go", "C", "Java", "C", "Ada" ir "Fortran", priekinius kanalus.


Savybės iš pirmo žvilgsnio

Su GCC galima sukonfigūruoti, kompiliuoti ir įdiegti GNU / Linux programas Linux arba BSD operacinėse sistemose, naudojant tik atitinkamos programos šaltinio archyvą. Tačiau vartotojai neprivalo bendrauti su kompiliatoriumi, nes tai automatiškai atliekama sukonfigūruojant ir kurdami scenarijus.

Projektas taip pat apima įvairių programų kalbų bibliotekas, pvz., libstdc ir libgcj, ir, kaip ir dauguma GNU programinės įrangos, jis turi būti sukonfigūruotas prieš jį galima sukurti ir įdiegti jūsų kompiuteryje.

Tai taip pat gali rodyti visą kelią į konkrečią biblioteką, kompiliatoriaus paieškos kelią, aplankus, visą kelią į konkretų komponentą, tikslinių bibliotekų katalogą, sysrooto priesagą, naudojamą antraštėms surasti ir normalią GNU trijulę.

Be to, yra įvairių kitų galimybių perduoti tam tikrų atskirtų kableliais parinkčių ir argumentų asembleriui, preprocesoriui ir linkeriui, kompiliuoti ir surinkti nesusiejant, sukurti bendrą biblioteką ir daugelį kitų.


Sukurta GNU operacinei sistemai

Iš pradžių buvo parašyta kaip pagrindinė GNU operacinės sistemos kompiliacija, todėl GCC (GNU kompiliatorių kolekcija) buvo sukurta kaip 100% nemokama programinė įranga ir pagal nutylėjimą ji įdiegta bet kuriame "Linux" paskyroje.

Šią programinę įrangą taip pat naudoja atvirojo kodo programuotojai, norėdami sudaryti savo programas. Komandų eilutė turi keletą parinkčių, tarp kurių galime paminėti ir galimybę rodyti kompiliatoriaus tikslinį procesorių, taip pat santykinį kelią OS bibliotekoms.


Bottom line

Apskritai, GCC yra vienas iš svarbiausių GNU / Linux operacinės sistemos komponentų. Ne tik tai, kad mes galime net neįsivaizduoti pasaulio be jo, bet GCC yra pagrindinė visos "Open Source" ekosistemos priežastis.

Kas naujo šiame leidime:

  • GCC 7.3 yra išleidimo iš klaidų iš GCC 7 skyriaus, kuriame yra svarbių pataisymų regresijos ir rimtų klaidų GCC 7.2, daugiau nei 99 klaidos, išfiksuotos nuo ankstesnio išleidimo.
  • Šiame leidime yra kodo generavimo parinktys, siekiant sumažinti "Spectre Variant 2" (CVE 2017-5715) "x86" ir "powerpc" taikiniams.

  • Kas naujo versijoje 8.1.0:

    • GCC 7.3 yra išleidimo iš klaidų iš GCC 7 filialas, kuriame yra svarbių pataisymų regresijos ir rimtų klaidų GCC 7.2, daugiau nei 99 klaidos ištaisytos nuo ankstesnio išleidimo.
    • Šiame leidime yra kodo generavimo parinktys, siekiant sumažinti "Spectre Variant 2" (CVE 2017-5715) "x86" ir "powerpc" taikiniams.

    Kas naujo versijoje:

    • GCC 7.1 yra pagrindinis leidimas, turintis esminių naujų funkcijų, kurių nėra GCC 6.x arba ankstesniuose GCC leidimuose. Dabar "C ++" frontend turi eksperimentinę paramą visai dabartinei C + + 17 versijai su parinktimis -std = c + + 1z ir -std = gnu ++ 1z, o biblioteka libstdc ++ turi daugumą C + + 17 projekto bibliotekos funkcijos. Tai išleidžia įvairius patobulintus išmestintos diagnostikos, įskaitant patobulintas vietas, vietovių diapazonus, neteisingai užrašytų identifikatorių pasiūlymus, parinkčių pavadinimus, paaiškinimus ir įvairius naujus įspėjimus. Optimizatoriai buvo patobulinti, patobulinimai pateikiami visose optimizacijose tarp procedūrų ir tarpusavyje, susiejant laiko optimizavimus ir įvairius tikslinius atgalinius įrenginius, įskaitant, bet neapsiribojant, parduotuvės sujungimo pratęsimo papildymus, kodo kėlimo optimizavimą, kilpos suskaidymą ir susitraukimą pakavimo patobulinimai. "Address Sanitizer" dabar gali pranešti apie kintamųjų naudojimą paliekant jų taikymo sritį. GCC dabar gali būti konfigūruojamas OpenMP 4.5 iškrovimui į "NVidia PTX GPGPU".

    Kas naujo versijoje 6.3.0:

    • GCC 6.3 yra klaidų ištaisymas iš GCC 6 skyriaus, kuriame yra svarbių regresijos ir rimtų klaidų pataisų GCC 6.2 versijoje, daugiau nei 79 klaidos, išfiksuotos nuo ankstesnio išleidimo.

    Kas naujo 6.2.0 versijoje:

    • Šis leidimas yra klaidų ištaisymo leidimas, kuriame yra regresijų pataisų GCC 5, palyginti su ankstesniais GCC išleidimais.

    Kas naujo versijoje 6.1.0:

    • Šis leidimas yra klaidų ištaisymo leidimas, kuriame yra regresijų pataisų GCC 5, palyginti su ankstesniais GCC išleidimais.

    Kas naujo versijoje 5.3.0:

    • Šis leidimas yra klaidų ištaisymo leidimas, kuriame yra regresijų pataisų GCC 5, palyginti su ankstesniais GCC išleidimais.

    Kas naujo versijoje 5.2.0:

    • Šis leidimas yra klaidų ištaisymo laida, kurioje yra pataisos regresijoms GCC 5.1 palyginti su ankstesniais GCC išleidimais.

    Kas naujo versijoje 5.1.0:

    • "C ++" priekinė dalis dabar turi pilna C + + 14 kalbos palaikymą, o "Standard C ++ Library" turi visą C + + 11 paramą ir eksperimentinę visą C + + 14 palaikymą. Visa C + + 11 parama buvo įmanoma, priimant Dual ABI, žr. Https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html. Daugiau informacijos rasite
    • "C" priekinė dalis dabar pagal numatytuosius nustatymus turi "C11" režimą su GNU plėtiniais, kuris paveikia inline raktinio žodžio semantyvą ir kelis kitus naudotojo matomus pakeitimus žr. adresu https://gcc.gnu.org/gcc-5/porting_to.html. Daugiau informacijos.
    • GCC 5.1 yra įvairių tarpprocedūrinių optimizavimo patobulinimų, pvz., naujas IPA tapatybės kodo suskaidymas ir įvairūs LTO patobulinimai, pvz., Išsamią informaciją rasite http://hubicka.blogspot.cz/2015/04/GCC5-IPA-LTO-news.html.
    • GCC 5.1 Vietos registro paskirstytojas dabar turi antrinės pertvarkos paketą, o i 86 / x86-64 sugeba pakartotinai naudoti PIC kietąjį registrą, kad pagerintų pozicijos nepriklausomą kodą, yra paprastas tarpprocesinis RA leidimas ir kitas kitas registras priskirtos patobulinimai.
    • GCC 5.1 prideda dalinę "OpenACC" standarto palaikymą, "OpenMP 4.0" palaikymą, skirtą "Intel" būsimiems "Xeon Phi" greitintuvams, ir paramą "OpenACC" iškrovimui į PTX. Nepaprastieji elgesio plovikliai GCC buvo išplėsti pridedant įvairias naujas runtime patikrinimus. Eksperimentinė GCC JIT biblioteka pridėta GCC 5.1.

    Kas naujo 4.8.4 versijoje:

    • Bendrieji optimizavimo patobulinimai:
    • "ARM" dabar yra "ARM" adreso "Sensor", kuris yra greitas atminties klaidų jutiklis.
    • "UndefinedBehaviorSanitizer" (ubsan), greitai neapibrėžtas elgesio detektorius, buvo pridėtas ir jį galima įjungti naudojant -fsanitize = undefined. Įvairūs skaičiavimai bus naudojami norint aptikti neapibrėžtą elgesį vykdymo metu. "UndefinedBehaviorSanitizer" šiuo metu yra prieinamas kalboms C ir C ++.
    • Link-time optimizavimo (LTO) patobulinimai:
    • Perrašyta tipo susijungimas. Naujas įdiegimas yra žymiai greitesnis ir naudoja mažiau atminties.
    • Geresnis skaidymo algoritmas, dėl kurio per laiko nuorodą sumažėja srautas.
    • Ankstyvas virtualių metodų pašalinimas sumažina objektų rinkmenų dydį ir pagerina laiko tarpsnių naudojimą ir laiko sukūrimą.
    • Funkcijų kūnai dabar yra įkeliami pagal pareikalavimą ir išleidžiami anksčiau gerinant bendrą atminties panaudojimą ryšio metu.
    • Dabar galite optimizuoti C + + slėptuosius pagrindinius metodus.
    • Naudojant linkerio įskiepį, kompiliavimas su -flto parinktimi dabar sukuria plona objekto failus (.o), kurie turi tik tarpinį kalbinį pateikimą LTO. Naudokite -ffat-lto-objektus, kurdami failus, kuriuose yra papildomai objekto kodas. Norėdami generuoti statines bibliotekas, tinkamas LTO apdorojimui, naudokite gcc-ar ir gcc-ranlib; sąrašo simbolių iš plonas objekto failo naudojimo gcc-nm. (Tai reikalauja, kad ar, ranlib ir nm buvo sudaryti su papildiniu palaikymu.)
    • Atminties naudojimo pastatas "Firefox", kuriame buvo įjungta derinimas, buvo sumažintas nuo 15 GB iki 3,5 GB; laiko nuoroda nuo 1700 sekundžių iki 350 sekundžių.
    • Tarpšakiniai optimizavimo patobulinimai:
    • Naujos rūšies paveldimo analizės modulis, pagerinantis devirtualizavimą. Devirtualizavimas dabar atsižvelgia į anoniminius pavadinimų ir C ++ 11 galutinį raktinį žodį.
    • Naujas spekuliacinis devirtualizacijos leidimas (valdomas -fdevirtualize-spekuliatyviai.
    • Skaičiavimai, kurie buvo spekuliaciniai tiesioginiai, yra grąžinami netiesiogiai, kai tiesioginis skambutis nėra pigesnis.
    • Vietos slapyvardžiai pateikiami simboliams, kurie, žinoma, yra semantiniu požiūriu ekvivalentiški dalijimosi bibliotekose, gerinant dinaminį susiejimo laiką.
    • Atsiliepimai nukreipti optimizavimo patobulinimai:
    • Programų, kuriose naudojamos C + + funkcijos, profiliavimas dabar yra patikimesnis.
    • Naujas laiko profiliavimas nustato tipinę tvarką, pagal kurią vykdomos funkcijos.
    • Nauja funkcija pertvarkyti praeiti (kontroliuojama -freorder-functions) žymiai sumažina didelių programų paleidimo laiką. Kol "binutils" palaikymas nebus baigtas, jis bus veiksmingas tik su laiko tarpsnių optimizavimu.
    • Atsiliepimų valdymas netiesioginio skambučio pašalinimo ir devirtualizavimo metu dabar įjungia kryžminių modulių skambučius, kai įjungiama laiko ryšio optimizavimas.
    • Naujos kalbos ir kalbos patobulinimai:
    • "OpenMP" specifikacijos 4.0 versiją dabar palaiko C ir C + + kompiliatoriai, o nuo 4.9.1 versijos - taip pat ir "Fortran" kompiliatoriuje. Naujoji "-fopenmp-simd" parinktis gali būti naudojama įgalinant OpenMP SIMD direktyvas, ignoruojant kitas "OpenMP" direktyvas. Naujasis variantas -fsimd-cost-model = leidžia pritaikyti vektorizacijos sąnaudų modelį kilpoms, kurių anotacijos yra su OpenMP ir Cilk Plus simd direktyvomis; -Wopenmp-simd įspėja, kai dabartinis sąnaudų modelis viršija naudotojo nustatytas simd direktyvas.
    • "C-C", "C" + "ir" Fortran "kompiliatorių pridėta" -Duomenų laiko "parinktis, kuri įspėja, kai naudojami makrokomandos __DATE__, __TIME__ arba __TIMESTAMP__. Šie makrokomponentai gali užkirsti kelią bitų išmintingiems identiškiems atkuriamiems kompiliacijoms.
    • Ada:
    • GNAT perkelia į Ada 2012 vietoj Ada 2005 pagal numatytuosius nustatymus.
    • "C" šeima:
    • Pridėta GCC diagnozės spalvinimo parama. "-Fdiagnostics-color = auto" įgalins jį išvedant į terminalus, -fdiagnostics-color = visada besąlygiškai. Aplinkos kintamasis GCC_COLORS gali būti naudojamas spalvų pritaikymui arba spalvų išjungimui. Jei GCC_COLORS kintamasis yra aplinkoje, numatytoji reikšmė yra -fdiagnostics-color = auto, kitaip -fdiagnostics-color = niekada.
    • pavyzdžių diagnostikos išvestis:
    • $ g ++ -fdiagnostics-color = always-S-Wall test.C
    • test.C: esant funkcijai & lsquo; int foo () ':
    • test.C: 1: 14: perspėjimas: funkcija grąžinimo negrąžinama, grąžinanti ne-negaliojančią [-Reklama tipo]
    • int foo () {}
    • test.C: 2: 46: klaida: šablono instancijos gylis viršija ne daugiau kaip 900 (naudoti -fotografavimo gylis = didinti maksimalų) instantiating & lsquo; struct X '
    • šablonas struct X {statinis const int vertė = X :: reikšmė; }; šablonas struct X;
    • test.C: 2: 46: rekursyviai reikalaujama iš "const int X :: value"
    • test.C: 2: 46: reikia iš "const int X :: value"
    • test.C: 2: 88: reikalaujama iš čia
    • test.C: 2: 46: klaida: neišsami tipas "X" naudojamas įterptųjų pavadinimų aprašyme
    • Naudodamas naują #pragma GCC ivdep, vartotojas gali teigti, kad nėra jokių kilpų priklausomų priklausomybių, dėl kurių būtų išvengta vienu metu atliekamų kartotinių kartotinių kartotinių kartotinių kartotinių kartotinių kartotinių kartojimų, naudojant SIMD (vieno nurodymo kelių duomenų) instrukcijas.
    • "Cilk Plus" palaikymas buvo pridėtas ir jį galima įjungti naudojant -fcilkplus parinktį. "Cilk Plus" yra C ir C + + kalbų pratęsimas, siekiant palaikyti duomenų ir užduočių lygiagretumą. Dabartinis įgyvendinimas atitinka ABI 1.2 versiją; bet funkcijos _Cilk_for buvo įdiegtos.
    • ISO C11 atomikos (_atomikos tipo specifika ir kvalifikatorius bei antraštė) dabar yra palaikomi.
    • "ISO C11 bendrieji pasirinkimai (" _Generic "raktinis žodis) dabar palaikomi.
    • ISO C11 gijų vietinis saugojimas (_Thread_local, panašus į GNU C __thread) dabar yra palaikomas.
    • ISO C11 palaikymas šiuo metu yra panašus į ISO C99 palaikymo išsamumo lygį: iš esmės užpildytos modulių klaidos, išplėstiniai identifikatoriai (palaikomi, išskyrus kampinius atvejus, kai naudojami išplėstiniai identifikatoriai), plūduriuojančių taškų klausimai (daugiausia, bet ne visai susijęs su neprivalomais C99 funkcijomis iš F ir G priedų) ir neprivalomų priedų K (ribinių verčių tikrinimo sąsajos) ir L (analizuojamumas).
    • Naujas C plėtinys __auto_type suteikia C + + 11 automatinio funkcionalumo "GNU C" funkciją.
    • C ++:
    • G + + įvedimas C + + 1 tipo grąžinimo tipo nurašymui normalioms funkcijoms buvo atnaujintas, kad atitiktų N3638, pasiūlymas priimtas į darbo dokumentą. Svarbiausia, jis prideda decltype (auto) norint gauti decltype semantiką, o ne šablono argumentų išskyrimo semantiką paprasto automatinio:
    • int & amp; f ();
    • auto i1 = f (); // int
    • decltype (automatinis) i2 = f (); // int & amp;
    • G ++ palaiko C ++ 1y lambda fiksavimo įkėlimo funkcijas:
    • [x = 42] {...};
    • Iš tiesų, jie buvo priimti nuo GCC 4.5, tačiau dabar kompiliatorius apie juos nepraneša su -std = c + + 1y, taip pat palaiko įkėlimo ir įterptųjų inicializatorius.
    • G ++ palaiko C + + 1y kintamos ilgio masyvus. G ++ jau ilgą laiką palaikė GNU / C99 stiliaus VLA, bet dabar papildomai palaiko inicializatorius ir lambda gaudymą pagal nuorodą. C + + 1y režimu G ++ skundžiasi VLA naudojimo atvejais, kurie neleidžiami standarto projekte, pvz., Žymiklio į VLA tipą formavimas arba dydžio taikymas VLA kintamam. Atkreipkite dėmesį, kad dabar atrodo, kad VLA nebus C + + 14 dalis, tačiau bus dalis atskiro dokumento, o galbūt ir C + + 17.
    • negaliojantis f (int n) {
    • int a [n] = {1, 2, 3}; // mesti std :: bad_array_length, jei n & lt; 3
    • [& amp; a] {for (int i: a) {cout

    Kas naujo 4.9.1 versijoje:

    • GCC 4.9.1 yra išleidimo iš klaidų iš GCC 4.9 filialas, kuriame yra svarbių pataisymų regresijos ir rimtų klaidų GCC 4.9.0 su daugiau nei 88 klaidomis, išfiksuotos nuo ankstesnio išleidimo. Be to, GCC 4.9.1 išleidimas palaiko OpenMP 4.0 ir "Fortran", o ne tik C ir C + +.

    Kas naujo versijoje 4.9.0:

    • Bendrieji optimizavimo patobulinimai:
    • "ARM" dabar yra "ARM" adreso "Sensor", kuris yra greitas atminties klaidų jutiklis.
    • "UndefinedBehaviorSanitizer" (ubsan), greitai neapibrėžtas elgesio detektorius, buvo pridėtas ir jį galima įjungti naudojant -fsanitize = undefined. Įvairūs skaičiavimai bus naudojami norint aptikti neapibrėžtą elgesį vykdymo metu. "UndefinedBehaviorSanitizer" šiuo metu yra prieinamas kalboms C ir C ++.
    • Link-time optimizavimo (LTO) patobulinimai:
    • Perrašyta tipo susijungimas. Naujas įdiegimas yra žymiai greitesnis ir naudoja mažiau atminties.
    • Geresnis skaidymo algoritmas, dėl kurio per laiko nuorodą sumažėja srautas.
    • Ankstyvas virtualių metodų pašalinimas sumažina objektų rinkmenų dydį ir pagerina laiko tarpsnių naudojimą ir laiko sukūrimą.
    • Funkcijų kūnai dabar yra įkeliami pagal pareikalavimą ir išleidžiami anksčiau gerinant bendrą atminties panaudojimą ryšio metu.
    • Dabar galite optimizuoti C + + slėptuosius pagrindinius metodus.
    • Naudojant linkerio įskiepį, kompiliavimas su -flto parinktimi dabar sukuria plona objektų failus (.o), kurie yra tik tarpinio kalbos pateikimo LTO. Naudokite -ffat-lto-objektus, kurdami failus, kuriuose yra papildomai objekto kodas. Norėdami generuoti statines bibliotekas, tinkamas LTO apdorojimui, naudokite gcc-ar ir gcc-ranlib; sąrašo simbolių iš plonas objekto failo naudojimo gcc-nm. (Reikalinga, kad ar, ranlib ir nm buvo sujungti su įskiepio palaikymu.)
    • Atminties naudojimo pastatas "Firefox", kuriame buvo įjungta derinimas, buvo sumažintas nuo 15 GB iki 3,5 GB; laiko nuoroda nuo 1700 sekundžių iki 350 sekundžių.
    • Tarpšakiniai optimizavimo patobulinimai:
    • Naujos rūšies paveldimo analizės modulis, pagerinantis devirtualizavimą. Devirtualizavimas dabar atsižvelgia į anoniminius pavadinimų ir C ++ 11 galutinį raktinį žodį.
    • Naujas spekuliacinis devirtualizacijos leidimas (valdomas -fdevirtualize-spekuliatyviai.
    • Skaičiavimai, kurie buvo spekuliaciniai tiesioginiai, yra grąžinami netiesiogiai, kai tiesioginis skambutis nėra pigesnis.
    • Vietos slapyvardžiai pateikiami simboliams, kurie, žinoma, yra semantiniu požiūriu ekvivalentiški dalijimosi bibliotekose, gerinant dinaminį susiejimo laiką.
    • Atsiliepimai nukreipti optimizavimo patobulinimai:
    • Programų, kuriose naudojamos C + + funkcijos, profiliavimas dabar yra patikimesnis.
    • Naujas laiko profiliavimas nustato tipinę tvarką, pagal kurią vykdomos funkcijos.
    • Nauja funkcija pertvarkyti praeiti (kontroliuojama -freorder-functions) žymiai sumažina didelių programų paleidimo laiką. Kol "binutils" palaikymas nebus baigtas, jis bus veiksmingas tik su laiko tarpsnių optimizavimu.
    • Atsiliepimų valdymas netiesioginio skambučio pašalinimo ir devirtualizavimo metu dabar įjungia kryžminių modulių skambučius, kai įjungiama laiko ryšio optimizavimas.
    • Naujos kalbos ir kalbos patobulinimai:
    • OpenMP specifikacijos 4.0 versija dabar yra palaikoma kompiliatorių C ir C ++. Naujoji "-fopenmp-simd" parinktis gali būti naudojama įgalinant OpenMP SIMD direktyvas, ignoruojant kitas "OpenMP" direktyvas. Naujasis variantas -fsimd-cost-model = leidžia pritaikyti vektorizacijos sąnaudų modelį kilpoms, kurių anotacijos yra su OpenMP ir Cilk Plus simd direktyvomis; -Wopenmp-simd įspėja, kai dabartinė kaštų modeli viršija naudotojo nustatytas "simd" direktyvas.
    • "C-C", "C" + "ir" Fortran "kompiliatorių pridėta" -Duomenų laiko "parinktis, kuri įspėja, kai naudojami makrokomandos __DATE__, __TIME__ arba __TIMESTAMP__. Šie makrokomponentai gali užkirsti kelią bitų išmintingiems identiškiems atkuriamiems kompiliacijoms.
    • Ada:
    • GNAT perkelia į Ada 2012 vietoj Ada 2005 pagal numatytuosius nustatymus.
    • "C" šeima:
    • Pridėta GCC diagnozės spalvinimo parama. "-Fdiagnostics-color = auto" įgalins jį išvedant į terminalus, -fdiagnostics-color = visada besąlygiškai. Aplinkos kintamasis GCC_COLORS gali būti naudojamas spalvų pritaikymui arba spalvų išjungimui. Jei GCC_COLORS kintamasis yra aplinkoje, numatytoji reikšmė yra -fdiagnostics-color = auto, kitaip -fdiagnostics-color = niekada.
    • pavyzdžių diagnostikos išvestis:
    • $ g ++ -fdiagnostics-color = always-S-Wall test.C
    • test.C: esant funkcijai & lsquo; int foo () ':
    • test.C: 1: 14: perspėjimas: funkcija grąžinimo negrąžinama, grąžinanti ne-negaliojančią [-Reklama tipo]
    • int foo () {}
    • test.C: 2: 46: klaida: šablono instancijos gylis viršija ne daugiau kaip 900 (naudoti -fotografavimo gylis = didinti maksimalų) instantiating & lsquo; struct X '
    • šablonas struct X {statinis const int vertė = X :: reikšmė; }; šablonas struct X;
    • test.C: 2: 46: rekursyviai reikalaujama iš "const int X :: value"
    • test.C: 2: 46: reikia iš "const int X :: value"
    • test.C: 2: 88: reikalaujama iš čia
    • test.C: 2: 46: klaida: neišsami tipas "X" naudojamas įterptųjų pavadinimų aprašyme
    • Naudodamas naują #pragma GCC ivdep, vartotojas gali teigti, kad nėra jokių kilpų priklausomų priklausomybių, dėl kurių būtų išvengta vienu metu atliekamų kartotinių kartotinių kartotinių kartotinių kartotinių kartotinių kartotinių kartojimų, naudojant SIMD (vieno nurodymo kelių duomenų) instrukcijas.
    • "Cilk Plus" palaikymas buvo pridėtas ir jį galima įjungti naudojant -fcilkplus parinktį. "Cilk Plus" yra C ir C + + kalbų pratęsimas, siekiant palaikyti duomenų ir užduočių lygiagretumą. Dabartinis įgyvendinimas atitinka ABI 1.2 versiją; bet funkcijos _Cilk_for buvo įdiegtos.
    • ISO C11 atomikos (_atomikos tipo specifika ir kvalifikatorius bei antraštė) dabar yra palaikomi.
    • "ISO C11 bendrieji pasirinkimai (" _Generic "raktinis žodis) dabar palaikomi.
    • ISO C11 gijų vietinis saugojimas (_Thread_local, panašus į GNU C __thread) dabar yra palaikomas.
    • ISO C11 palaikymas šiuo metu yra panašus į ISO C99 palaikymo išsamumo lygį: iš esmės užpildytos modulių klaidos, išplėstiniai identifikatoriai (palaikomi, išskyrus kampinius atvejus, kai naudojami išplėstiniai identifikatoriai), plūduriuojančių taškų klausimai (daugiausia, bet ne visai susijęs su neprivalomais C99 funkcijomis iš F ir G priedų) ir neprivalomų priedų K (ribinių verčių tikrinimo sąsajos) ir L (analizuojamumas).
    • Naujas C plėtinys __auto_type suteikia C + + 11 automatinio funkcionalumo "GNU C" funkciją.
    • C ++:
    • G + + įvedimas C + + 1 tipo grąžinimo tipo nurašymui normalioms funkcijoms buvo atnaujintas, kad atitiktų N3638, pasiūlymas priimtas į darbo dokumentą. Svarbiausia, jis prideda decltype (auto) norint gauti decltype semantiką, o ne šablono argumentų išskyrimo semantiką paprasto automatinio:
    • int & amp; f ();
    • auto i1 = f (); // int
    • decltype (automatinis) i2 = f (); // int & amp;
    • G ++ palaiko C ++ 1y lambda fiksavimo įkėlimo funkcijas:
    • [x = 42] {...};
    • Iš tiesų, jie buvo priimti nuo GCC 4.5, tačiau dabar kompiliatorius apie juos nepraneša su -std = c + + 1y, taip pat palaiko įkėlimo ir įterptųjų inicializatorius.
    • G + + palaiko C + + 1y kintamos ilgio masyvus. G ++ jau ilgą laiką palaikė GNU / C99 stiliaus VLA, bet dabar papildomai palaiko inicializatorius ir lambda gaudymą pagal nuorodą. C + + 1y režimu G ++ skundžiasi VLA naudojimo atvejais, kurie neleidžiami standarto projekte, pvz., Žymiklio į VLA tipą formavimas arba dydžio taikymas VLA kintamam. Atkreipkite dėmesį, kad dabar atrodo, kad VLA nebus C + + 14 dalis, tačiau bus dalis atskiro dokumento, o galbūt ir C + + 17.
    • negaliojantis f (int n) {
    • int a [n] = {1, 2, 3}; // mesti std :: bad_array_length, jei n & lt; 3
    • [& amp; a] {for (int i: a) {cout

Panaši programinė įranga

Komentarai GCC

1 Komentarai
  • http://www.eduwizzonlinetrainings.com 29 Dec 17
    EduwizzOnlineTraining is one of the Best Online Training Institute in Hyderabad, Bangalore. Eduwizz provide courses like Hybris Development, WebSphere Commerce Server,Blockchain Training,Hyperledger Fabric Development ,Ethereum Development ,Commvault Training, Devops , Netapps , Mulesoft ESB ,Machine Learning,Data Science , Internet of Things , Hybris ,Angular JS , Node JS , Express JS , Business Analyst, Selenium testing with webdriver, Guidewire ,Adobe, RPA ,TSM, EMC...etc
Pridėti komentarą
Pasukite ant paveikslėlio!