GCC

Sagteware kiekie:
GCC
Sagteware besonderhede:
Weergawe: 8.2.0 Opgedateer
Upload datum: 16 Aug 18
Ontwikkelaar: The GCC Team
Lisensie: Gratis
Populariteit: 108

Rating: 3.0/5 (Total Votes: 3)

GCC (GNU Compiler Collection) is 'n oopbron-opdrag-lyn sagteware wat ontwerp is om op te tree as 'n samesteller vir GNU / Linux en BSD-gebaseerde bedryfstelsels. Dit bevat voor-eindes vir talle programmeertale, insluitend Objective-C, Go, C ++, Java, C, Ada en Fortran.


Funksies in 'n oogopslag

Met GCC kan u GNU / Linux-toepassings instel, saamstel en installeer in Linux of BSD bedryfstelsels met slegs die bron argief van die betrokke program. Gebruikers moet egter nie met die samesteller omgaan nie, aangesien dit outomaties gedoen word deur die konfigureer en maak skrifte.

Die projek bevat ook biblioteke vir verskeie programmeertale, soos libstdc en libgcj, en soos die meeste GNU-sagteware, moet dit gekonfigureer word voordat dit op jou rekenaar gebou en geïnstalleer kan word.

Dit kan ook die volle pad na 'n spesifieke biblioteek vertoon, dopgehou in die soekpad van die samesteller, volledige pad na 'n spesifieke komponent, biblioteek se teiken biblioteke, sysroot-agtervoegsel wat gebruik word om koptekste te vind en die genormaliseerde GNU-triplet van die teiken.

Daarbenewens is daar verskeie ander opsies om sekere kommas geskeide opsies en argumente aan die assembler, preprocessor en linker te gee, saam te stel en te versamel sonder om te koppel, 'n gedeelde biblioteek te skep, en baie ander.


Ontwerp vir die GNU bedryfstelsel

Oorspronklik geskryf as die hoof samesteller vir die GNU-bedryfstelsel, is GCC (GNU Compiler Collection) ontwikkel om 100% gratis sagteware te wees en dit is standaard geïnstalleer op enige Linux-verspreiding.

Die sagteware word ook deur ontwikkelaars van Open Source gebruik om hul programme op te stel. Die opdrag lyn bevat verskeie opsies, waaronder die vermoë om die teikenverwerker van die samesteller te vertoon, asook die relatiewe pad na OS-biblioteke.


Bottom line

Alles in die algemeen is GCC een van die belangrikste komponente van enige GNU / Linux bedryfstelsel. Nie net dat ons nie eens 'n wêreld kan voorstel nie, maar GCC is die hoofrede vir die hele Open Source-ekosisteem.

Wat is nuut in hierdie uitgawe:

  • GCC 7.3 is 'n foutoplossing van die GCC 7-tak wat belangrike regstellings bevat vir regressies en ernstige foute in GCC 7.2 met meer as 99 foute wat sedert die vorige weergawe vasgestel is.
  • Hierdie weergawe bevat die opsies vir die generering van kode om Specter Variant 2 (CVE 2017-5715) vir die x86- en powerpc-teikens te versag.

Wat is nuut in weergawe 8.1.0:

  • GCC 7.3 is 'n foutoplossing vrystelling van die GCC 7 tak bevat belangrike oplossings vir regressies en ernstige foute in GCC 7.2 met meer as 99 foute wat sedert die vorige weergawe vasgestel is.
  • Hierdie weergawe bevat die opsies vir die generering van kode om Specter Variant 2 (CVE 2017-5715) vir die x86- en powerpc-teikens te versag.

Wat is nuut in weergawe:

  • GCC 7.1 is 'n belangrike weergawe wat aansienlike nuwe funksies bevat wat nie beskikbaar is in GCC 6.x of vorige GCC uitgawes. Die C ++-frontend het nou eksperimentele ondersteuning vir al die huidige C ++ 17-konsepte, met die -std = c + + 1z en -std = gnu + + 1z opsies, en die libstdc ++-biblioteek het die meeste van die C ++ 17-konsep biblioteek funksies ook geïmplementeer. Hierdie uitgawes bevat verskeie verbeteringe in die uitgestuurde diagnose, insluitend verbeterde plekke, liggingreekse, voorstelle vir verkeerde spelfoute, opsie name, wenke en verskeie nuwe waarskuwings is bygevoeg. Die optimalisators is verbeter, met verbeteringe wat voorkom in alle intra- en interprosedure-optimalisasies, koppelingstydoptimalisasies en verskillende doelwitstutte, insluitend, maar nie beperk nie tot, byvoegings van winkelversmeltingspas, kodehyseroptimalisering, lusverdeling en krimping. wikkel verbeteringe. Die Adres Sanitizer kan nou die gebruik van veranderlikes rapporteer nadat hulle hul omvang verlaat het. GCC kan nou gekonfigureer word vir OpenMP 4.5 aflaai van NVidia PTX GPGPUs.

Wat is nuut in weergawe 6.3.0:

  • GCC 6.3 is 'n foutoplossing uit die GCC 6-tak wat belangrike regstellings bevat vir regressies en ernstige foute in GCC 6.2 met meer as 79 foute wat sedert die vorige weergawe vasgestel is.

Wat is nuut in weergawe 6.2.0:

  • Hierdie weergawe is 'n foutoplossing, met regstellings vir regressies in GCC 5.2 in vergelyking met vorige uitgawes van GCC.

Wat is nuut in weergawe 6.1.0:

  • Hierdie weergawe is 'n foutoplossing, met regstellings vir regressies in GCC 5.2 in vergelyking met vorige uitgawes van GCC.

Wat is nuut in weergawe 5.3.0:

  • Hierdie weergawe is 'n foutoplossing, met regstellings vir regressies in GCC 5.2 in vergelyking met vorige uitgawes van GCC.

Wat is nuut in weergawe 5.2.0:

  • Hierdie weergawe is 'n foutoplossing vrystelling, wat regstellings bevat vir regressies in GCC 5.1 in vergelyking met vorige uitgawes van GCC.

Wat is nuut in weergawe 5.1.0:

  • Die C + + -front het nou volle C + + 14-taalondersteuning en die Standard C ++-biblioteek het volledige C ++ 11-ondersteuning en eksperimentele volledige C ++ 14-ondersteuning. Die volledige C + + 11-ondersteuning is moontlik gemaak deur Dual ABI aan te neem, kyk https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html vir meer besonderhede.
  • Die C-voorkant is nou standaard in C11-modus met GNU-uitbreidings, wat die semantiek van die inlyn navraag beïnvloed en verskeie ander gebruikers sigbare veranderinge bring, sien https://gcc.gnu.org/gcc-5/porting_to.html vir meer besonderhede.
  • GCC 5.1 bevat verskeie interprocedural optimalisering verbeterings, bv. 'n nuwe IPA Identical Code Folding pas en verskeie LTO verbeteringe, bv. ODR gebaseerde samesmelting van C + + tipes, sien http://hubicka.blogspot.cz/2015/04/GCC5-IPA-LTO-news.html vir meer besonderhede.
  • Die GCC 5.1 Local Register Allocator bevat nou 'n rematerialiserings-subpas. Op 86 / x86-64 is dit moontlik om die PIC-hardregister te gebruik om die prestasie van posisie onafhanklike kode te verbeter. Daar is 'n eenvoudige interprocedural RA-pas en verskeie ander registers Toewysingsverbeterings is bygevoeg.
  • GCC 5.1 voeg gedeeltelike ondersteuning vir die OpenACC-standaard, ondersteuning vir OpenMP 4.0-aflaaier na Intel se komende Xeon Phi-versnellers en ondersteuning vir OpenACC-aflaai na PTX. Die Undefined Behavior Sanitizer in GCC is verleng deur verskeie nuwe runtime-tjeks by te voeg. 'N GCC-eksperimentele GIT-biblioteek is by GCC 5.1 bygevoeg.

Wat is nuut in weergawe 4.8.4:

  • Verbeteringe van algemene optimaliseerder:
  • AddressSanitizer, 'n vinnige geheue fout detector, is nou beskikbaar op ARM.
  • UndefinedBehaviorSanitizer (ubsan), 'n vinnige ongedefinieerde gedragsdetector, is bygevoeg en kan geaktiveer word deur -fsanitize = undefined. Verskeie berekeninge sal opgerig word om onbeperkte gedrag op te spoor. UndefinedBehaviorSanitizer is tans beskikbaar vir die C en C + + tale.
  • Verbeterings vir die optimalisering van skakeltyd (LTO):
  • Soort samesmelting is herskryf. Die nuwe implementering is aansienlik vinniger en gebruik minder geheue.
  • Beter partisie-algoritme wat lei tot minder stroom tydens skakel tyd.
  • Vroeë verwydering van virtuele metodes verminder die grootte van objeklêers en verbeter geheueverbruik en gebruik tyd.
  • Funksie liggame word nou op aanvraag gelaai en vroegtydig vrygestel om die totale geheueverbruik op skakel tyd te verbeter.
  • C + + versteekte sleutelmetodes kan nou uitgewerk word.
  • As u 'n koppelaar-plugin gebruik, word dit saamgestel met die -flto-opsie. Nou word daar effense voorwerplêers genereer (.o) wat slegs 'n intermediêre taalvoorstelling vir LTO bevat. Gebruik -ffat-lto-voorwerpe om lêers te skep wat addisioneel die objekkode bevat. Om statiese biblioteke wat geskik is vir LTO-verwerking te genereer, gebruik gcc-ar en gcc-ranlib; Om simbole van 'n skraal voorwerplêer te gebruik, gebruik gcc-nm. (Dit vereis dat ar, ranlib en nm saamgestel is met plugin ondersteuning.)
  • Geheue gebruik gebou Firefox met debug geaktiveer is verminder van 15GB tot 3,5GB; skakel tyd vanaf 1700 sekondes na 350 sekondes.
  • Inter-proses optimalisering verbeterings:
  • Nuwe tipe oorerflikheidsanalise-module wat devirtualisering verbeter. Devirtualisering hou nou anonieme naamruimtes in en die C + + 11 finale navraag.
  • Nuwe spekulatiewe devirtualiseringspas (beheer deur -fdevirtualize-spekulatief.
  • Oproepe wat spekulatief gemaak is, word direk na indirekte teruggeskakel waar direkte oproep nie goedkoper is nie.
  • Plaaslike aliasse word bekend gestel vir simbole wat bekend is as semanties ekwivalent oor gedeelde biblioteke wat dinamiese koppeltye verbeter.
  • Terugvoergerigte optimaliseringverbeterings:
  • Profiele van programme wat C + + inlyn funksies gebruik, is nou meer betroubaar.
  • Nuwe tydprofiele bepaal die tipiese volgorde waarin funksies uitgevoer word.
  • 'N nuwe funksie herbestellingspas (beheer deur -freorder-funksies) verminder aansienlike aanvangstyd van groot toepassings. Totdat die ondersteuning van binutils voltooi is, is dit slegs effektief met skakel-tyd optimalisering.
  • Terugvoergedrewe indirekte oproep-verwydering en devirtualisering hanteer nou kruismodule-oproepe wanneer skakeloptimalisering geaktiveer is.
  • Nuwe tale en taal spesifieke verbeteringe:
  • Weergawe 4.0 van die OpenMP-spesifikasie word nou ondersteun in die C- en C ++-kompileerders en begin met die 4.9.1-vrystelling ook in die Fortran-samesteller. Die opsie new-opening-simd kan gebruik word om OpenMP se SIMD-riglyne te aktiveer, terwyl ander OpenMP-riglyne geïgnoreer word. Die new -fsimd-cost-model = opsie stel die vektoriseringskostemodel vir lusse wat met OpenMP en Cilk Plus simd-riglyne geannoteer is, af te stem. -Wopenmp-simd waarsku wanneer die huidige koste-model die simd-riglyne wat deur die gebruiker gestel word, oortree.
  • Die opsie -Wattyd-tyd is bygevoeg vir die C, C ++ en Fortran-samestellers, wat waarsku wanneer die __DATE__, __TIME__ of __TIMESTAMP__-makros gebruik word. Daardie makro's kan bietjie-identiese reproduceerbare samestellings voorkom.
  • Ada:
  • GNAT is as standaard by Ada 2012 aangeskakel in plaas van Ada 2005.
  • C familie:
  • Ondersteuning vir die kleurering van diagnose wat deur GCC uitgereik is, is bygevoeg. Die -fdiagnostics-color = outomaties sal dit aktiveer wanneer u na terminale, -diagnostics-color = altyd onvoorwaardelik uitstuur. Die GCC_COLORS omgewing veranderlike kan gebruik word om die kleure aan te pas of kleur te aktiveer. As GCC_COLORS veranderlike in die omgewing teenwoordig is, is die standaard -fdiagnostics-color = outomaties, anders -fdiagnostics-color = never.
  • Uitvoer van die diagnose diagnose:
  • $ g + + -diagnostiek-kleur = altyd -S -Walle toets.C
  • toets.C: In funksie & intw; int foo () ':
  • toets.C: 1: 14: waarskuwing: geen teruggawe in funksie wat nie-ongeldig is [-Wreturn-tipe]
  • int foo () ()
  • toets.C: 2: 46: fout: die sjabloon-instellingsdiepte oorskry maksimum 900 (gebruik -voorwerp-diepte = om die maksimum te verhoog) instantiating & structs X '
  • sjabloonstruktuur X (statiese const int waarde = X :: waarde; }; sjabloonstruktuur X;
  • test.C: 2: 46: rekursief benodig van 'intx int X :: value'
  • test.C: 2: 46: vereis van 'n intr X :: waarde '
  • toets.C: 2: 88: hier benodig
  • toets.C: 2: 46: fout: onvolledige tipe & X; 'gebruik in geneste naam spesifiseerder
  • Met die nuwe #pragma GCC ivdep kan die gebruiker beweer dat daar geen lusdraende afhanklikhede is wat die gelyktydige uitvoering van opeenvolgende iterasies kan verhoed deur gebruik te maak van SIMD-instruksies (enkele instruksie meervoudige data).
  • Ondersteuning vir Cilk Plus is bygevoeg en kan met die -fcilkplus opsie geaktiveer word. Cilk Plus is 'n uitbreiding van die C en C + + tale om data en taak parallelisme te ondersteun. Die huidige implementering volg ABI weergawe 1.2; alle funksies, maar _Cilk_voor geïmplementeer.
  • ISO C11 atomics (die _Atomic-tipe spesifiseerder en -kwalifiseerder en die koptekst) word nou ondersteun.
  • ISO C11 generiese keuses (_Generic navraag) word nou ondersteun.
  • ISO C11 draad-plaaslike berging (_Thread_local, soortgelyk aan GNU C __thread) word nou ondersteun.
  • ISO C11-ondersteuning is nou op 'n soortgelyke vlak van volledigheid aan ISO C99-ondersteuning: wesenlik volledige modulo-foute, uitgebreide identifiseerders (ondersteun, behalwe vir hoekgevalle wanneer -gevolgde-identifiseerders gebruik word), swaaipuntprobleme (hoofsaaklik maar nie heeltemal nie met betrekking tot opsionele C99-kenmerke uit bylae F en G) en die opsionele bylae K (Bound-checking interfaces) en L (Analyse).
  • 'n Nuwe C-uitbreiding __auto_type bied 'n deelversameling van die funksionaliteit van C + + 11-motor in GNU C.
  • C ++:
  • Die G ++-implementering van C ++ 1y-terugtrekkingsaftrekking vir normale funksies is opgedateer om te voldoen aan N3638, die voorstel aanvaar in die werkpapier. Meestal, dit voeg decltype (outomaties) by vir die afname van semantiek in terme van die sjabloon argument deduksie semantiek van gewone outomatiese:
  • int & amp; f ();
  • motor i1 = f (); // int
  • decltype (auto) i2 = f (); // int & amp;
  • G ++ ondersteun C ++ 1y lambda capture initializers:
  • [x = 42] {...};
  • In werklikheid is hulle aanvaar sedert GCC 4.5, maar nou waarsku die compileer nie met -std = c ++ 1y nie, en ondersteun ook hakies en ingeboude initialiseerders.
  • G + + ondersteun C ++ 1 veranderlike lengte skikkings. G ++ het al lang tyd GNU / C99-style VLA's ondersteun, maar ondersteun nou aanvanklik aanvanklikes en lambda-opname deur verwysing. In C ++ 1y-modus sal G + + kla oor VLA-gebruike wat nie deur die konsepstandaard toegelaat word nie, soos die vorming van 'n wyser na VLA-tipe of die grootte van 'n VLA-veranderlike toe te pas. Let daarop dat dit nou blyk dat VLAs nie deel van C + + 14 sal wees nie, maar sal deel wees van 'n aparte dokument en dan dalk C + + 17.
  • void f (int n) {
  • int a [n] = {1, 2, 3}; // gooi std :: bad_array_length as n < 3
  • [& a] {vir (int i: a) {cout

Wat is nuut in weergawe 4.9.1:

  • GCC 4.9.1 is 'n foutoplossing van die GCC 4.9-tak wat belangrike regstellings bevat vir regressies en ernstige foute in GCC 4.9.0 met meer as 88 foute wat sedert die vorige weergawe vasgestel is. Daarbenewens ondersteun GCC 4.9.1-vrystelling OpenMP 4.0 ook in Fortran, eerder as net in C en C ++.

Wat is nuut in weergawe 4.9.0:

  • Verbeteringe van algemene optimaliseerder:
  • AddressSanitizer, 'n vinnige geheue fout detector, is nou beskikbaar op ARM.
  • UndefinedBehaviorSanitizer (ubsan), 'n vinnige ongedefinieerde gedragsdetector, is bygevoeg en kan geaktiveer word deur -fsanitize = undefined. Verskeie berekeninge sal opgerig word om onbeperkte gedrag op te spoor. UndefinedBehaviorSanitizer is tans beskikbaar vir die C en C + + tale.
  • Verbeterings vir die optimalisering van skakeltyd (LTO):
  • Soort samesmelting is herskryf. Die nuwe implementering is aansienlik vinniger en gebruik minder geheue.
  • Beter partisie-algoritme wat lei tot minder stroom tydens skakel tyd.
  • Vroeë verwydering van virtuele metodes verminder die grootte van objeklêers en verbeter geheueverbruik en gebruik tyd.
  • Funksie liggame word nou op aanvraag gelaai en vroegtydig vrygestel om die totale geheueverbruik op skakel tyd te verbeter.
  • C + + versteekte sleutelmetodes kan nou uitgewerk word.
  • Wanneer u 'n koppelaar-plugin gebruik, word dit saamgestel met die -flto opsie. Nou genereer skyfvoorwerpe-lêers (.o) wat slegs intermediêre taalvoorstelling vir LTO bevat. Gebruik -ffat-lto-voorwerpe om lêers te skep wat addisioneel die objekkode bevat. Om statiese biblioteke wat geskik is vir LTO-verwerking te genereer, gebruik gcc-ar en gcc-ranlib; Om simbole van 'n skraal voorwerplêer te gebruik, gebruik gcc-nm. (Vereis dat ar, ranlib en nm is saamgestel met plugin ondersteuning.)
  • Geheue gebruik gebou Firefox met debug geaktiveer is verminder van 15GB tot 3,5GB; skakel tyd vanaf 1700 sekondes na 350 sekondes.
  • Inter-proses optimalisering verbeterings:
  • Nuwe tipe oorerflikheidsanalise-module wat devirtualisering verbeter. Devirtualisering hou nou anonieme naamruimtes in en die C + + 11 finale navraag.
  • Nuwe spekulatiewe devirtualiseringspas (beheer deur -fdevirtualize-spekulatief.
  • Oproepe wat spekulatief gemaak is, word direk na indirekte teruggeskakel waar direkte oproep nie goedkoper is nie.
  • Plaaslike aliasse word bekend gestel vir simbole wat bekend is as semanties ekwivalent oor gedeelde biblioteke wat dinamiese koppeltye verbeter.
  • Terugvoergerigte optimaliseringverbeterings:
  • Profiele van programme wat C + + inlyn funksies gebruik, is nou meer betroubaar.
  • Nuwe tydprofiele bepaal die tipiese volgorde waarin funksies uitgevoer word.
  • 'N nuwe funksie herbestellingspas (beheer deur -freorder-funksies) verminder aansienlike aanvangstyd van groot toepassings. Totdat die ondersteuning van binutils voltooi is, is dit slegs effektief met skakel-tyd optimalisering.
  • Terugvoergedrewe indirekte oproep-verwydering en devirtualisering hanteer nou kruismodule-oproepe wanneer skakeloptimalisering geaktiveer is.
  • Nuwe tale en taal spesifieke verbeteringe:
  • Weergawe 4.0 van die OpenMP-spesifikasie word nou ondersteun vir die C- en C ++-kompileerders. Die opsie new-opening-simd kan gebruik word om OpenMP se SIMD-riglyne te aktiveer, terwyl ander OpenMP-riglyne geïgnoreer word. Die new -fsimd-cost-model = opsie stel die vektoriseringskostemodel vir lusse wat met OpenMP en Cilk Plus simd-riglyne geannoteer is, af te stem. -Wopenmp-simd waarsku wanneer die huidige kostemodel die simd-riglyne wat deur die gebruiker gestel word, oortree.
  • Die opsie -Wattyd-tyd is bygevoeg vir die C, C ++ en Fortran-samestellers, wat waarsku wanneer die __DATE__, __TIME__ of __TIMESTAMP__-makros gebruik word. Daardie makro's kan bietjie-identiese reproduceerbare samestellings voorkom.
  • Ada:
  • GNAT is as standaard by Ada 2012 aangeskakel in plaas van Ada 2005.
  • C familie:
  • Ondersteuning vir die kleurering van diagnose wat deur GCC uitgereik is, is bygevoeg. Die -fdiagnostics-color = outomaties sal dit aktiveer wanneer u na terminale, -diagnostics-color = altyd onvoorwaardelik uitstuur. Die GCC_COLORS omgewing veranderlike kan gebruik word om die kleure aan te pas of kleur te aktiveer. As GCC_COLORS veranderlike in die omgewing teenwoordig is, is die standaard -fdiagnostics-color = outomaties, anders -fdiagnostics-color = never.
  • Uitvoer van die diagnose diagnose:
  • $ g + + -diagnostiek-kleur = altyd -S -Walle toets.C
  • toets.C: In funksie & intw; int foo () ':
  • toets.C: 1: 14: waarskuwing: geen teruggawe in funksie wat nie-ongeldig is [-Wreturn-tipe]
  • int foo () ()
  • toets.C: 2: 46: fout: die sjabloon-instellingsdiepte oorskry maksimum 900 (gebruik -voorwerp-diepte = om die maksimum te verhoog) instantiating & structs X '
  • sjabloonstruktuur X (statiese const int waarde = X :: waarde; }; sjabloonstruktuur X;
  • test.C: 2: 46: rekursief benodig van 'intx int X :: value'
  • test.C: 2: 46: vereis van 'n intr X :: waarde '
  • toets.C: 2: 88: hier benodig
  • toets.C: 2: 46: fout: onvolledige tipe & X; 'gebruik in geneste naam spesifiseerder
  • Met die nuwe #pragma GCC ivdep kan die gebruiker beweer dat daar geen lusdraende afhanklikhede is wat die gelyktydige uitvoering van opeenvolgende iterasies kan verhoed deur gebruik te maak van SIMD-instruksies (enkele instruksie meervoudige data).
  • Ondersteuning vir Cilk Plus is bygevoeg en kan met die -fcilkplus opsie geaktiveer word. Cilk Plus is 'n uitbreiding van die C en C + + tale om data en taak parallelisme te ondersteun. Die huidige implementering volg ABI weergawe 1.2; alle funksies, maar _Cilk_voor geïmplementeer.
  • ISO C11 atomics (die _Atomic-tipe spesifiseerder en -kwalifiseerder en die koptekst) word nou ondersteun.
  • ISO C11 generiese keuses (_Generic navraag) word nou ondersteun.
  • ISO C11 draad-plaaslike berging (_Thread_local, soortgelyk aan GNU C __thread) word nou ondersteun.
  • ISO C11-ondersteuning is nou op 'n soortgelyke vlak van volledigheid aan ISO C99-ondersteuning: wesenlik volledige modulo-foute, uitgebreide identifiseerders (ondersteun, behalwe vir hoekgevalle wanneer -gevolgde-identifiseerders gebruik word), swaaipuntprobleme (hoofsaaklik maar nie heeltemal nie met betrekking tot opsionele C99-kenmerke uit bylae F en G) en die opsionele bylae K (Bound-checking interfaces) en L (Analyse).
  • 'n Nuwe C-uitbreiding __auto_type bied 'n deelversameling van die funksionaliteit van C + + 11-motor in GNU C.
  • C ++:
  • Die G ++-implementering van C ++ 1y-terugtrekkingsaftrekking vir normale funksies is opgedateer om te voldoen aan N3638, die voorstel aanvaar in die werkpapier. Meestal, dit voeg decltype (outomaties) by vir die afname van semantiek in terme van die sjabloon argument deduksie semantiek van gewone outomatiese:
  • int & amp; f ();
  • motor i1 = f (); // int
  • decltype (auto) i2 = f (); // int & amp;
  • G ++ ondersteun C ++ 1y lambda capture initializers:
  • [x = 42] {...};
  • In werklikheid is hulle aanvaar sedert GCC 4.5, maar nou waarsku die compileer nie met -std = c ++ 1y nie, en ondersteun ook hakies en ingeboude initialiseerders.
  • G + + ondersteun C ++ 1 veranderlike lengte skikkings. G ++ het al lang tyd GNU / C99-style VLA's ondersteun, maar ondersteun nou aanvanklik aanvanklikes en lambda-opname deur verwysing. In C ++ 1y-modus sal G + + kla oor VLA-gebruike wat nie deur die konsepstandaard toegelaat word nie, soos die vorming van 'n wyser na VLA-tipe of die grootte van 'n VLA-veranderlike toe te pas. Let daarop dat dit nou blyk dat VLAs nie deel van C + + 14 sal wees nie, maar sal deel wees van 'n aparte dokument en dan dalk C + + 17.
  • void f (int n) {
  • int a [n] = {1, 2, 3}; // gooi std :: bad_array_length as n < 3
  • [& a] {vir (int i: a) {cout

Soortgelyke sagteware

Aubit 4GL compiler
Aubit 4GL compiler

20 Feb 15

Vala
Vala

27 Sep 15

ClamAv#
ClamAv#

3 Jun 15

Kommentaar te GCC

1 Kommentaar
  • 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
Kommentaar te lewer
Draai op die foto!