Pagina's met C/C++ eigenschappen

De volgende eigenschappenpagina's vindt u onder Project>Eigenschappen>Configuratie-eigenschappen>C/C++:

Algemene eigenschappen van C/C++

Extra inclusie directories

Hiermee specificeert u een of meerdere mappen om toe te voegen aan het includepad. Scheid mappen met puntkomma's (;) als er meer dan één map is. Hiermee stelt u de /I compileroptie (Extra inclusief mappen) in.

Aanvullende #using mappen

Hiermee specificeert u een of meer directories om te doorzoeken voor het oplossen van namen die aan een #using-richtlijn zijn doorgegeven. Scheid mappen met puntkomma's (;) als u meerdere mappen toevoegt. Hiermee stelt u de /AI compileroptie in.

Aanvullende BMI-directorieën

Hiermee specificeert u een of meer mappen om te doorzoeken om namen die aan een import richtlijn zijn doorgegeven, op te lossen. Scheid mappen met puntkomma's (;) als u meerdere mappen toevoegt. Hiermee stelt u de /ifcSearchDir[path] compileroptie in.

Aanvullende moduleafhankelijkheden

Met deze optie geeft u een of meer modules op die moeten worden gebruikt om doorgegeven namen op te lossen met een import-richtlijn. Scheid mappen met puntkomma's (;) als u meerdere mappen toevoegt. Hiermee stelt u de /reference compileroptie in.

Aanvullende afhankelijkheden van header-eenheden

Hiermee specificeert u een of meer kopregel-eenheden die moeten worden gebruikt om namen op te lossen die zijn doorgegeven aan een import header-instructie. Scheid mappen met puntkomma's (;) als u meerdere mappen toevoegt. Hiermee stelt u de /headerUnit compileroptie in.

Bronnen scannen op moduleafhankelijkheden

Wanneer deze eigenschap is ingesteld op Ja, scant de compiler alle C++-bronnen, niet alleen moduleinterface- en headereenheidbronnen, voor afhankelijkheden van module- en headereenheden. Het buildsysteem bouwt de volledige afhankelijkhedengrafiek, die ervoor zorgt dat alle geïmporteerde modules en header-eenheden worden gebouwd voordat de bestanden worden samengesteld die ervan afhankelijk zijn. Wanneer Scan Sources for Module Dependencies en Translate Includes to Imports beide zijn ingesteld op Yes, wordt elk headerbestand dat is opgegeven in een bestand van het type header-units.json in dezelfde map als het headerbestand, gecompileerd tot een header-eenheid.

Bestanden met de extensie .ixxen bestanden met de eigenschappen>C/C++>Advanced>Compile As zijn ingesteld op Compile as C++ Header Unit (/exportHeader) worden altijd gescand.

Bestanden met de extensie .ixx en bestanden waarvan de eigenschap>> is ingesteld op Compile as C++ Header Unit (/exportHeader), worden altijd gescand.

Inclusief vertalen naar import

Wanneer deze eigenschap is ingesteld op Ja, behandelt de compiler een #include instructie als richtlijn import als aan bepaalde voorwaarden wordt voldaan: het headerbestand wordt opgegeven in een header-units.json bestand in dezelfde map en er is een gecompileerde header-eenheid (een .ifc bestand) beschikbaar voor het headerbestand. Anders wordt het headerbestand als normaal #includebehandeld. Het header-units.json bestand wordt gebruikt om header-eenheden te bouwen voor elk #include zonder symboolduplicatie. Wanneer Includes vertalen naar imports en Bronnen scannen op moduleafhankelijkheden beide op Ja zijn ingesteld, vindt de compiler automatisch alle headerbestanden die kunnen worden gecompileerd tot header-eenheden. Met deze eigenschap stelt u de /translateInclude compileroptie in.

Informatie-indeling voor foutopsporing

Hiermee geeft u het type foutopsporingsgegevens op die door de compiler worden gegenereerd. Voor deze eigenschap zijn compatibele linkerinstellingen vereist. Stelt , , (Foutopsporingsinformatie-indeling) compileropties in.

Choices

  • Geen (None) - Produceert geen foutopsporingsinformatie, dus compilatie kan sneller zijn.
  • C7 compatibel (OldStyle) - Produceert objectbestanden die volledige symbolische foutopsporingsgegevens bevatten. Er wordt geen PDB-bestand geproduceerd.
  • Program Database (ProgramDatabase) - Produceert een programmadatabase (PDB) die typegegevens en symbolische foutopsporingsgegevens bevat voor gebruik met het foutopsporingsprogramma. De symbolische foutopsporingsinformatie bevat de namen en typen variabelen en functies en regelnummers.
  • Programmadatabase voor bewerken en doorgaan (EditAndContinue) - Produceert een programmadatabase, zoals eerder beschreven, in een indeling die ondersteuning biedt voor de functie Bewerken en Doorgaan .

Alleen mijn code-foutopsporing ondersteunen

Voegt ondersteunende code toe voor het inschakelen van Just My Code-foutopsporing in deze compilatie-eenheid. Stelt in /JMC.

Ondersteuning voor dynamische foutopsporing in C++

(Preview) Hiermee stelt u de compilervlag /dynamicdeopt in om dynamische foutopsporing voor C++ in te schakelen. Plaats gedeoptimaliseerde onderbrekingspunten en voer overal stappen uit met deoptimalisatie van functies op aanvraag. Gebruik deze modus voor het opsporen van fouten in geoptimaliseerde code.

Common Language Runtime-ondersteuning

Gebruik de .NET Runtime-service. Deze switch is niet compatibel met een aantal andere switches. Zie de documentatie over de /clr schakelopties voor meer informatie.

Choices

  • Geen ondersteuning voor Common Language RunTime - geen Common Language Runtime-ondersteuning.
  • Common Language RunTime Support : hiermee maakt u metagegevens voor uw toepassing die kunnen worden gebruikt door andere CLR-toepassingen. Hiermee kan uw toepassing ook typen en gegevens gebruiken in de metagegevens van andere CLR-onderdelen.
  • Pure MSIL Common Language RunTime-ondersteuning : produceert een MSIL-uitvoerbestand zonder systeemeigen uitvoerbare code, hoewel het systeemeigen typen kan bevatten die zijn gecompileerd naar MSIL.
  • Veilige MSIL Common Language RunTime-ondersteuning : produceert een MSIL-only (geen systeemeigen uitvoerbare code) en controleerbaar uitvoerbestand.

Windows Runtime-extensie gebruiken

Gebruik de Windows Runtime Language Extensions. Stelt in /ZW.

Opstartbanner onderdrukken

Onderdrukt de weergave van de aanmeldingsbanner wanneer de compiler wordt gestart en informatieberichten weergeeft tijdens het compileren.

Waarschuwingsniveau

Selecteer hoe strikt de compiler moet zijn over codefouten. Stelt in /W0 - /W4.

Choices

  • Alle waarschuwingen uitschakelen - Niveau 0 schakelt alle waarschuwingen uit.
  • Niveau1 - Niveau 1 geeft ernstige waarschuwingen weer. Niveau 1 is het standaardwaarschuwingsniveau op de commandoregel.
  • Niveau2 - Niveau 2 geeft alle waarschuwingen en waarschuwingen op niveau 1 weer die minder ernstig zijn dan niveau 1.
  • Niveau3 - Niveau 3 geeft alle waarschuwingen op niveau 2 en alle andere waarschuwingen weer die worden aanbevolen voor productiedoeleinden.
  • Niveau4 - Niveau 4 geeft alle waarschuwingen op niveau 3 en informatieve waarschuwingen weer, die in de meeste gevallen veilig kunnen worden genegeerd.
  • EnableAllWarnings : hiermee worden alle waarschuwingen ingeschakeld, inclusief de waarschuwingen die standaard zijn uitgeschakeld.

Waarschuwingen behandelen als fouten

Behandelt compilerwaarschuwingen als fouten. Voor een nieuw project is het misschien het beste om in elke compilatie te gebruiken /WX . Los alle waarschuwingen op om codefouten die moeilijk te vinden zijn, te minimaliseren.

Waarschuwingsversie

Waarschuwingen verbergen die zijn geïntroduceerd na een specifieke versie van de compiler. Stelt in /Wv:xx[.yy[.zzzzz]].

Indeling voor diagnostische gegevens

Biedt uitgebreide diagnostische gegevens, met kolomgegevens en broncontext in diagnostische berichten.

Choices

  • Caret : bevat kolomgegevens in het diagnostische bericht. Geeft ook de relevante regel van de broncode weer, met een dakje dat de kolom met de fout aangeeft.
  • Kolomgegevens : geeft ook het kolomnummer op binnen de regel waar de diagnose wordt uitgegeven, indien van toepassing.
  • Klassiek : voert alleen de eerdere, beknopte diagnostische berichten uit met het regelnummer.

SDL-controles

Aanvullende door de SDL (Security Development Lifecycle) aanbevolen controles. Omvat het inschakelen van extra functies voor het veilig genereren van code, waarbij extra beveiligingsrelevante waarschuwingen als fouten worden behandeld. Stelt in /sdl, /sdl-.

Compilatie met meerdere processors

Compilatie met meerdere processors inschakelen. Hiermee stelt u de /MP compileroptie in.

Address Sanitizer inschakelen

Compileert en koppelt het programma aan AddressSanitizer-instrumentatie. Deze eigenschap ondersteunt momenteel x86- en x64-doelversies. Hiermee stelt u de /fsanitize compileroptie in.

Fuzzer-ondersteuning inschakelen (experimenteel)

Compileert programma's met de fuzzer. Schakel AddressSanitizer in voor de beste resultaten. Momenteel beschikbaar voor x86- en x64-builds. Stelt in /fsanitize=fuzzer.

Eigenschappen van C/C++ optimalisatie

Optimization

Selecteer een optie voor het optimaliseren van code. Selecteer Aangepast om specifieke optimalisatieopties te gebruiken. Stelt /Od, /O1, /O2 in.

Choices

  • Aangepast - Aangepaste optimalisatie.
  • Uitgeschakeld - Optimalisatie uitschakelen.
  • Maximale optimalisatie (gunstgrootte) - gelijk aan /Os /Oy /Ob2 /Gs /GF /Gy.
  • Maximale optimalisatie (gunstsnelheid) - gelijk aan /Oi /Ot /Oy /Ob2 /Gs /GF /Gy.
  • Optimalisaties (Voorrang voor snelheid) - Equivalent aan /Oi /Ot /Oy /Ob2.

Inline-functieuitbreiding

Selecteer het niveau van inline-functieuitbreiding voor de build. Stelt in /Ob.

Choices

  • standaard
  • Uitgeschakeld : schakelt inline-uitbreiding uit, die standaard is ingeschakeld.
  • Alleen __inline - Hiermee worden alleen functies uitgevouwen die zijn gemarkeerd als inline, __forceinlineof __inline. Of, in een C++-lidfunctie, gedefinieerd in een klassedeclaratie.
  • Elke Geschikte - breidt uit functies die zijn gemarkeerd als inline of __inline en een andere functie die door de compiler wordt gekozen. (Uitbreiding vindt plaats naar eigen goeddunken van de compiler. Deze compiler-geselecteerde uitbreiding wordt vaak autoinlining genoemd.)

Intrinsieke functies inschakelen

Maakt intrinsieke functies mogelijk. Door intrinsieke functies te gebruiken, wordt sneller maar mogelijk grotere code gegenereerd. Stelt in /Oi.

Geef de voorkeur aan grootte of snelheid

Of u nu codegrootte of codesnelheid wilt gebruiken. Global Optimization moet zijn ingeschakeld. Stelt in /Ot, /Os.

Choices

  • Geef de voorkeur aan kleine code : minimaliseert de grootte van EXE's en DLL's door de compiler te instrueren om de grootte te bevorderen boven de snelheid.
  • Geef de voorkeur aan snelle code - Vergroot de snelheid van EXE's en DLL's door de compiler te instrueren de voorkeur te geven aan snelheid boven grootte. (Deze waarde is de standaardwaarde wanneer optimalisaties zijn ingeschakeld.)
  • Geen van beide : geen grootte- en snelheidsoptimalisatie.

Omlijstingspunten weglaten

Onderdrukt het aanmaken van frame pointers op de call stack.

Optimalisaties voor Fiber-Safe inschakelen

Maakt glasvezelveilige optimalisaties mogelijk voor toepassingen die gebruikmaken van vezels voor toegang tot thread-lokale opslag. Stelt in /GT.

Optimalisatie van hele programma's

Maakt optimalisaties tussen modules mogelijk door de codegeneratie uit te stellen tot de koppelingsfase. Hiervoor is de koppelingsoptie Tijdcode genereren vereist. Stelt in /GL.

Eigenschappen van C/C++ Preprocessor

Preprocessor-definities

Definieert voorverwerkingssymbolen voor uw bronbestand.

Preprocessordefinities ongedaan maken

Hiermee specificeert u een of meer ongedefinieerde preprocessor-directieven. Stelt in /U.

Alle preprocessordefinities ongedaan maken

Alle eerder gedefinieerde preprocessorwaarden ongedaan maken. Stelt in /u.

Standaard includepaden negeren

Hiermee voorkomt u dat de compiler zoekt naar insluitingsbestanden in mappen die zijn opgegeven in de omgevingsvariabelen INCLUDE.

Voorverwerking naar een bestand

Verwerkt C- en C++-bronbestanden vooraf en schrijft de vooraf verwerkte uitvoer naar een bestand. Met deze optie wordt compilatie onderdrukt en wordt er geen bestand geproduceerd .obj .

Voorverwerking regelnummers onderdrukken

Voorverwerking zonder #line richtlijnen.

Opmerkingen behouden

Schakel deze optie in om opmerkingen van C- en C++-bronnen (// en /* ... */) in .i bestanden en andere preprocessoruitvoer te behouden. De preprocessor verwijdert standaard opmerkingen.

Hiervoor moet ten minste één van de opties voor voorverwerking worden ingesteld. Stelt in /C.

Standaard conforme preprocessor gebruiken

Gebruik een standaardconforme preprocessor (/Zc:preprocessor). Momenteel aangeduid door /std:c11 en latere versies. Als u de verouderde preprocessor wilt gebruiken, stelt u deze eigenschap in op Nee.

Eigenschappen voor het genereren van C/C++-code

String Pooling inschakelen

Schakel deze eigenschap in om tekenreekspooling in te schakelen, waarbij identieke tekenreeksen worden gecombineerd tot één alleen-lezen kopie in het gecompileerde programma. Dit kan leiden tot kleinere programma's. /O1, /O2en /ZI stel de /GF optie automatisch in.

Minimale herbouw inschakelen

Maakt minimale herbouw mogelijk, waarmee wordt bepaald of C++-bronbestanden die headerbestanden (.h) bevatten die gewijzigde C++-klassedefinities bevatten, opnieuw moeten worden gecompileert.

C++-uitzonderingen inschakelen

Specificeert het model van uitzonderingsbehandeling dat door de compiler moet worden gebruikt.

Choices

  • Ja met SEH-uitzonderingen : het uitzonderingsafhandelingsmodel dat asynchrone (gestructureerde) en synchrone (C++) uitzonderingen ondervangt. Stelt in /EHa.
  • Ja : het uitzonderingsafhandelingsmodel dat alleen C++-uitzonderingen onderschept en de compiler configureert om ervan uit te gaan dat extern "C" functies nooit een C++-uitzondering genereren. Stelt in /EHsc.
  • Ja met Extern C-functies : het uitzonderingsafhandelingsmodel dat alleen C++-uitzonderingen ondervangt en configureert de compiler om ervan uit te gaan dat extern "C" functies een uitzondering genereren. Stelt in /EHs.
  • Nee - Geen uitzonderingsafhandeling.

Kleinere typecontrole

Maakt het mogelijk te controleren op conversie naar kleinere gegevenstypen. Niet compatibel met een ander optimalisatietype dan foutopsporing. Stelt in /RTCc.

Basisruntimecontroles

Hiermee schakelt u eenvoudige controles op runtimefouten in. Niet compatibel met een ander optimalisatietype dan foutopsporing. Stelt /RTCs, /RTCu, /RTC1 in.

Choices

  • Stack Frames - Schakelt runtimefoutcontrole voor stackframes in.
  • Niet-geïnitialiseerde variabelen: rapporteert wanneer een variabele wordt gebruikt zonder geïnitialiseerd te zijn.
  • Beide (/RTC1, equiv. tot /RTCsu) - equivalent van /RTCsu.
  • Standaard : standaardruntimecontroles.

Runtime-bibliotheek

Hiermee geeft u een runtimebibliotheek voor koppeling op. Sets /MT, /MTd, /MD, /MDd

Choices

  • Multithreaded : zorgt ervoor dat uw toepassing gebruikmaakt van de multithreaded, statische versie van de runtimebibliotheek.
  • Foutopsporing met meerdere threads - Definieert _DEBUG en _MT. Deze optie zorgt er ook voor dat de compiler de bibliotheeknaam LIBCMTD.lib in het .obj bestand plaatst, zodat de linker gebruikt LIBCMTD.lib om externe symbolen op te lossen.
  • DLL met meerdere threads : zorgt ervoor dat uw toepassing gebruikmaakt van de DLL-specifieke, multithreaded-versie van de runtimebibliotheek. Definieert _MT en _DLL zorgt ervoor dat de compiler de bibliotheeknaam MSVCRT.lib in het .obj bestand plaatst.
  • DLL met meerdere threads voor foutopsporing : definieert _DEBUG, _MTen _DLL zorgt ervoor dat uw toepassing de foutopsporing, DLL-specifieke, multithreaded-versie van de runtimebibliotheek gebruikt. Het zorgt er ook voor dat de compiler de bibliotheeknaam MSVCRTD.lib in het .obj bestand plaatst.

Uitlijning van struct-lid

Hiermee geeft u uitlijningsgrenzen van 1, 2, 4, 8 of 16 byte aan voor de uitlijning van struct-leden. Stelt in /Zp.

Choices

  • 1 Byte - Pakt de structuren op één byte-grenzen. Hetzelfde als /Zp.
  • 2 Bytes - Pakt structuur op grenzen van twee bytes.
  • 4 bytes - Pakt structuren op vier-bytegrenzen.
  • 8 Bytes - Pakt structuren op bytegrenzen van acht bytes (standaard).
  • 16 bytes - Packs structuren op zestien bytegrenzen.
  • Standaard - Standaarduitlijningsinstellingen.

Hiermee geeft u 1, 2, 4 of 8-bytegrenzen op voor uitlijning van structlid. Stelt in /Zp.

Choices

  • 1 Byte - Pakt de structuren op één byte-grenzen. Hetzelfde als /Zp.
  • 2 Bytes - Pakt structuur op grenzen van twee bytes.
  • 4 bytes - Pakt structuren op vier-bytegrenzen.
  • 8 Bytes - Pakt structuren op bytegrenzen van acht bytes (standaard).
  • Standaard - Standaarduitlijningsinstellingen.

Beveiligingscontrole

Helpt bij het detecteren van stack-bufferoverschrijdingen, waardoor aanvallers misbruik kunnen maken van inbreuk op uw toepassing.

Choices

  • Beveiligingscontrole uitschakelen - stelt /GS- in.
  • Beveiligingscontrole inschakelen - stelt /GS in.

Controlestroombeveiliging

Helpt bij het detecteren van pogingen om naar illegale codeblokken te verzenden.

Choices

  • Ja - Schakel Control Flow Guard in. Stelt in /guard:cf.
  • No

Koppelen op functieniveau inschakelen

Hiermee kan de compiler afzonderlijke functies verpakken in de vorm van verpakte functies (COMDAT's). Vereist voor bewerken en doorgaan met werken. Stelt in /Gy.

Parallelle codegeneratie inschakelen

Hiermee kan de compiler parallelle code genereren voor lussen die worden geïdentificeerd met behulp van #pragma loop(hint_parallel[(n)]) wanneer optimalisatie is ingeschakeld.

Verbeterde instructieset inschakelen

Schakel het gebruik van instructies in die zijn gevonden op processors die uitgebreide instructiesets ondersteunen. Bijvoorbeeld de SSE-, SSE2-, AVX- en AVX2-uitbreidingen voor IA-32 en de AVX- en AVX2-uitbreidingen voor x64. /arch:SSE is alleen beschikbaar voor x86-builds. /arch:SSE2 is beschikbaar voor x86- en x64-builds en is de standaardinstelling voor beide architecturen. Het gebruik van uitgebreide instructies kan worden uitgeschakeld met /arch:IA32. Zie /arch (x86), /arch (x64), /arch (ARM64), en /arch (ARM) voor meer informatie.

Choices

  • Streaming SIMD-extensies (X86): hiermee schakelt u streaming-SIMD-extensies in. Stelt in /arch:SSE.
  • Streaming SIMD Extensions 2 (X86): hiermee schakelt u Streaming SIMD Extensions 2 in. Stelt in /arch:SSE2.
  • Advanced Vector Extensions (X86/X64): hiermee worden geavanceerde vectorextensies ingeschakeld. Stelt in /arch:AVX.
  • Advanced Vector Extensions 2 (X86/X64): hiermee schakelt u Advanced Vector Extensions 2 in. Stelt in /arch:AVX2.
  • Advanced Vector Extensions 512 (X86/X64): hiermee schakelt u Advanced Vector Extensions 512 in. Stelt in /arch:AVX512.
  • Advanced Vector Extensions AVX10.1 (X86/X64): hiermee schakelt u Advanced Vector Extensions 10 versie 1 in. Stelt in /arch:AVX10.1.
  • Advanced Vector Extensions AVX10.2 (X86/X64): hiermee schakelt u Advanced Vector Extensions 10 versie 2 in. Stelt in /arch:AVX10.2.
  • Virtualisatieextensies (ARM). Hiermee schakelt u ARM-virtualisatie-extensies in. Stelt in /arch:ARMv7VE.
  • ARM VFPv4-instructies (ARM). Hiermee worden ARM VFPv4-instructies ingeschakeld. Stelt in /arch:VFPv4.
  • Vereisten voor CPU-extensies ARMv8.0-A (ARM64). Schakelt ARMv8.0-A-vereisten in. Stelt in /arch:arm8.0.
  • Vereisten voor CPU-extensies ARMv8.1-A (ARM64). Schakelt ARMv8.1-A-vereisten in. Stelt in /arch:arm8.1.
  • Vereisten voor CPU-extensies ARMv8.2-A (ARM64). Schakelt ARMv8.2-A-vereisten in. Stelt in /arch:arm8.2.
  • Vereisten voor CPU-extensies ARMv8.3-A (ARM64). Schakelt ARMv8.3-A-vereisten in. Stelt in /arch:arm8.3.
  • Vereisten voor CPU-extensies ARMv8.4-A (ARM64). Schakelt ARMv8.4-A-vereisten in. Stelt in /arch:arm8.4.
  • Vereisten voor CPU-extensies ARMv8.5-A (ARM64). Schakelt ARMv8.5-A-vereisten in. Stelt in /arch:arm8.5.
  • Vereisten voor CPU-extensies ARMv8.6-A (ARM64). Hiermee schakelt u ARMv8.6-A-vereisten in. Stelt in /arch:arm8.6.
  • Vereiste CPU-extensies ARMv8.7-A (ARM64). Schakelt ARMv8.7-A-vereisten in. Stelt in /arch:arm8.7.
  • Vereisten voor CPU-extensies ARMv8.8-A (ARM64). Activeert ARMv8.8-A-vereisten. Stelt in /arch:arm8.8.
  • Geen uitgebreide instructies : uitgebreide instructies voor x86-builds worden uitgeschakeld. Stelt in /arch:IA32.
  • Niet ingesteld - Hiermee wordt geen optie expliciet ingesteld /arch .

Schakel het gebruik van instructies in die zijn gevonden op processors die uitgebreide instructiesets ondersteunen. Bijvoorbeeld de SSE-, SSE2-, AVX- en AVX2-uitbreidingen op IA-32, en de AVX- en AVX2-uitbreidingen op x64. Momenteel /arch:SSE en /arch:SSE2 zijn alleen beschikbaar bij het bouwen voor de x86-architectuur. Als er geen optie is opgegeven, gebruikt de compiler instructies op processors die ondersteuning bieden voor SSE2. Het gebruik van uitgebreide instructies kan worden uitgeschakeld met /arch:IA32. Zie /arch (x86), /arch (x64), /arch (ARM64), en /arch (ARM) voor meer informatie.

Choices

  • Streaming SIMD-extensies (X86): hiermee schakelt u streaming-SIMD-extensies in. Stelt in /arch:SSE.
  • Streaming SIMD Extensions 2 (X86): hiermee schakelt u Streaming SIMD Extensions 2 in. Stelt in /arch:SSE2.
  • Advanced Vector Extensions (X86/X64): hiermee worden geavanceerde vectorextensies ingeschakeld. Stelt in /arch:AVX.
  • Advanced Vector Extensions 2 (X86/X64): hiermee schakelt u Advanced Vector Extensions 2 in. Stelt in /arch:AVX2.
  • Advanced Vector Extensions 512 (X86/X64): hiermee schakelt u Advanced Vector Extensions 512 in. Stelt in /arch:AVX512.
  • Advanced Vector Extensions AVX10.1 (X86/X64): hiermee schakelt u Advanced Vector Extensions 10 versie 1 in. Stelt in /arch:AVX10.1.
  • Virtualisatieextensies (ARM). Hiermee schakelt u ARM-virtualisatie-extensies in. Stelt in /arch:ARMv7VE.
  • ARM VFPv4-instructies (ARM). Hiermee worden ARM VFPv4-instructies ingeschakeld. Stelt in /arch:VFPv4.
  • Vereisten voor CPU-extensies ARMv8.0-A (ARM64). Schakelt ARMv8.0-A-vereisten in. Stelt in /arch:arm8.0.
  • Vereisten voor CPU-extensies ARMv8.1-A (ARM64). Schakelt ARMv8.1-A-vereisten in. Stelt in /arch:arm8.1.
  • Vereisten voor CPU-extensies ARMv8.2-A (ARM64). Schakelt ARMv8.2-A-vereisten in. Stelt in /arch:arm8.2.
  • Vereisten voor CPU-extensies ARMv8.3-A (ARM64). Schakelt ARMv8.3-A-vereisten in. Stelt in /arch:arm8.3.
  • Vereisten voor CPU-extensies ARMv8.4-A (ARM64). Schakelt ARMv8.4-A-vereisten in. Stelt in /arch:arm8.4.
  • Vereisten voor CPU-extensies ARMv8.5-A (ARM64). Schakelt ARMv8.5-A-vereisten in. Stelt in /arch:arm8.5.
  • Vereisten voor CPU-extensies ARMv8.6-A (ARM64). Hiermee schakelt u ARMv8.6-A-vereisten in. Stelt in /arch:arm8.6.
  • Vereiste CPU-extensies ARMv8.7-A (ARM64). Schakelt ARMv8.7-A-vereisten in. Stelt in /arch:arm8.7.
  • Vereisten voor CPU-extensies ARMv8.8-A (ARM64). Activeert ARMv8.8-A-vereisten. Stelt in /arch:arm8.8.
  • Geen uitgebreide instructies : uitgebreide instructies voor x86-builds worden uitgeschakeld. Stelt in /arch:IA32.
  • Niet ingesteld - Hiermee wordt geen optie expliciet ingesteld /arch .

Choices

  • Streaming SIMD-extensies - Streaming SIMD-extensies. Ingesteld /arch:SSE
  • Streaming SIMD Extensions 2 - Streaming SIMD Extensions 2. Ingesteld /arch:SSE2
  • Advanced Vector Extensions - Advanced Vector Extensions . Ingesteld /arch:AVX
  • Advanced Vector Extensions 2 - Advanced Vector Extensions 2. Ingesteld /arch:AVX2
  • Geen uitgebreide instructies - geen uitgebreide instructies. Ingesteld /arch:IA32
  • Niet ingesteld - niet ingesteld.

Vectorlengte inschakelen

Schakel het kiezen van vectorlengte voor /arch:AVX512 en /arch:AVX10.x vlaggen in. Toegestane waarden zijn 256 en 512 bits (X86/X64).

Drijvende-kommamodel

Hiermee stelt u het drijvende-kommamodel in. Stelt /fp:precise, /fp:strict, /fp:fast in.

Choices

  • Nauwkeurig - standaard. Verbetert de consistentie van zwevendekommatesten voor gelijkheid en ongelijkheid.
  • Strikt : het striktste drijvendekommamodel. /fp:strict zorgt ervoor dat deze fp_contract uit is en fenv_access aan staat. /fp:except is impliciet en kan worden uitgeschakeld door /fp:except- expliciet op te geven. Bij gebruik met /fp:except-, dwingt /fp:strict strikte drijvende-kommasemantiek af, maar zonder rekening te houden met uitzonderlijke gebeurtenissen.
  • Snel : maakt in de meeste gevallen de snelste code.

Uitzonderingen voor drijvende komma inschakelen

Betrouwbaar model voor drijvende-komma-uitzonderingen. Uitzonderingen worden onmiddellijk gegenereerd nadat ze zijn geactiveerd. Stelt in /fp:except.

Hotpatchable-image maken

Wanneer hotpatching is ingeschakeld, zorgt de compiler ervoor dat de eerste instructie van elke functie twee bytes is, zoals vereist voor hot patching. Stelt in /hotpatch.

Risicobeperking spectre

Mitigaties voor Spectre voor CVE 2017-5753. Stelt in /Qspectre.

Choices

  • Ingeschakeld - Spectre-beperking inschakelen voor CVE 2017-5753.
  • Alle belastingen - Spectre-beperking voor alle belastingen inschakelen.
  • Alle controlestroombelastingen - Beperking van spectre inschakelen voor controlestroombelastingen.
  • Uitgeschakeld - Niet ingesteld.

Risicobeperking spectre

Mitigaties voor Spectre voor CVE 2017-5753. Stelt in /Qspectre.

Choices

  • Ingeschakeld - Spectre-beperking inschakelen voor CVE 2017-5753.
  • Uitgeschakeld - Niet ingesteld.

Intel JCC Erratum-beperking inschakelen

Softwarebeperking voor de impact op de prestaties die wordt veroorzaakt door de Intel JCC-erratum-microcode-update. Stelt in /QIntel-jcc-erratum.

EH-vervolgmetagegevens inschakelen

Genereert een gesorteerde lijst met alle geldige vervolgdoelen voor uitzonderingsafhandeling voor een binaire module, gebruikt tijdens de runtime voor RIP-validatie. Momenteel beschikbaar voor x64-builds. Stelt in /guard:ehcont.

Ondertekende retouren inschakelen

Hiermee worden ondertekende return-instructies ingeschakeld, die helpen pogingen te detecteren en te voorkomen om vanuit functie-returns naar ongeldige blokken te springen. Momenteel beschikbaar voor ARM64-builds. Stelt in /guard:signret.

C/C++ Taaleigenschappen

Taalextensies uitschakelen

Onderdrukt of schakelt taalextensies in. Stelt in /Za.

Behandel WChar_t als ingebouwd type

Wanneer u deze eigenschap inschakelt, wordt het type wchar_t een systeemeigen type dat op dezelfde manier aan __wchar_t wordt toegewezen als __int16 aan short wordt toegewezen. /Zc:wchar_t is standaard ingeschakeld.

Conformiteit afdwingen in bereik van de For-lus

Implementeert standaard C++-gedrag voor de for instructielussen met Microsoft-extensies. Sets /Za, /Ze (Taalextensies uitschakelen. /Zc:forScope is standaard ingeschakeld.

Verwijder niet-gerefereerde code en gegevens

Wanneer u deze eigenschap inschakelt, genereert de compiler niet langer symboolinformatie voor code en gegevens waarnaar niet wordt verwezen.

Regels voor typeconversie afdwingen

Wordt gebruikt om een rvalue-verwijzingstype te identificeren als resultaat van een cast-bewerking in overeenstemming met de C++11-standaard.

Run-Time typegegevens inschakelen

Hiermee voegt u code toe voor het controleren van C++-objecttypen tijdens runtime (informatie over runtimetypen of RTTI). Stelt in /GR, /GR-.

MP-ondersteuning openen

Hiermee schakelt u OpenMP 2.0-taalextensies in. Stelt in /openmp.

C++ Taalstandaard

Bepaalt de C++-taalstandaard die door de compiler wordt afgedwongen. De standaardwaarde stelt geen standaardoptie in, dus de compiler gebruikt de standaardinstelling C++14. Als u een specifieke waarde selecteert, wordt de bijbehorende /std compileroptie ingesteld.

Choices

  • Standaard (ISO C++14 Standard)
  • ISO C++14 Standaard (/std:c++14)
  • ISO C++17 Standaard (/std:c++17)
  • ISO C++20 Standaard (/std:c++20)
  • Preview - ISO C++23 Standard (/std:c++23preview)
  • Preview - Functies uit het meest recente C++-werkconcept (/std:c++latest)

Standaard voor C-taal

Bepaalt de C-taalstandaard die door de compiler wordt afgedwongen. De standaardwaarde stelt geen standaardoptie in, dus de compiler gebruikt de standaard verouderde MSVC-instelling. Als u een specifieke waarde selecteert, wordt de bijbehorende /std compileroptie ingesteld.

Choices

  • Standaardinstelling (Legacy MSVC)
  • ISO C11 Standard (/std:c11)
  • ISO C17 (2018) Standaard (/std:c17)
  • Preview - Functies uit het nieuwste C-werkdocument (/std:clatest)

Nalevingsmodus

Hiermee schakelt u de conformantiemodus in of onderdrukt. Stelt in /permissive-.

Experimentele C++ Standaardbibliotheekmodules inschakelen

Experimentele ondersteuning voor de C++-modules "Modules TS" en "Standard Library".

ISO C++23 Standaardbibliotheekmodules bouwen

Vanaf Visual Studio 17.6, wanneer deze eigenschap is ingeschakeld en C++ Language Standard is ingesteld /std:c++latestop, zoeken en bouwen Microsoft C++-projecten automatisch ISO C++23 Standard Library-modules. Hiermee kunt u import std of import std.compat in uw C++-code.

Eigenschappen van vooraf gecompileerde C/C++-headers

Vooraf gecompileerde header

Vooraf gecompileerde header maken/gebruiken

Hiermee kunt u een vooraf gecompileerde header maken of gebruiken tijdens de build. Stel /Yc, /Yu in.

Choices

  • Maken - Geeft de compiler opdracht om een vooraf gecompileerd headerbestand (.pch) te maken dat de status van compilatie op een bepaald punt vertegenwoordigt.
  • Gebruik - Geeft de compiler opdracht om een bestaand vooraf gecompileerd headerbestand (.pch) te gebruiken in de huidige compilatie.
  • Geen vooraf gecompileerde headers gebruiken: geen vooraf gecompileerde headers gebruiken.

Vooraf gecompileerd headerbestand

Hiermee geeft u de naam op van het headerbestand dat de compiler gebruikt voor het maken of openen van een vooraf gecompileerde header. Stel /Yc, /Yu in.

Uitvoerbestand voor vooraf gecompileerde header

Hiermee geeft u het pad of de naam van het gegenereerde vooraf gecompileerde headerbestand. Stelt in /Fp.

Eigenschappen van C/C++ Uitvoerbestanden

Bron met toewijzing uitbreiden

Hiermee maakt u een lijstbestand met uitgebreide kenmerken die zijn opgenomen in het bronbestand. Stelt in /Fx.

Assembleruitvoer

Hiermee geeft u de inhoud van het uitvoerbestand van de assemblytaal op. Sets /FA, /FAc, /FAs, /FAcs

Choices

  • Geen vermelding - geen vermelding.
  • Lijst met alleen assemblycode - assemblycode: .asm.
  • Assembly met Machine Code - Machine- en assemblycode: .cod.
  • Assembleercode met broncode - Broncode en assembleercode: .asm.
  • Assembly, machinecode en bron - Assembly, machinecode en broncode: .cod.

Unicode gebruiken voor assemblervermelding

Zorgt ervoor dat het uitvoerbestand wordt gemaakt in UTF-8-indeling.

ASM lijst locatie

Specificeert het relatieve pad of de naam van het ASM-listingbestand. Dit kan een bestands- of mapnaam zijn. Stelt in /Fa.

Naam van moduleuitvoerbestand

Locatie van het (BMI-)uitvoerbestand voor een module of header unit. Dit kan een bestands- of mapnaam zijn. Stelt in /ifcOutput[name].

Bestandsnaam van moduleafhankelijkheden

Hiermee geeft u het pad en/of de naam van het gegenereerde moduleafhankelijkhedenbestand. Stelt in /scanDependencies[path].

Objectbestandsnaam

Hiermee geeft u een naam om de standaard objectbestandsnaam te overschrijven. Dit kan een bestands- of mapnaam zijn. Stelt in /Fo.

Bestandsnaam van programmadatabase

Hiermee geeft u een naam op voor een door compiler gegenereerd PDB-bestand. Hiermee geeft u ook de basisnaam op voor het vereiste door de compiler gegenereerde IDB-bestand. Dit kan een bestands- of mapnaam zijn. Stelt in /Fd.

XML-documentatiebestanden genereren

Hiermee geeft u op dat de compiler opmerkingenbestanden voor XML-documentatie moet genereren (. XDC). Stelt in /doc.

Bestandsnaam van XML-documentatie

Hiermee geeft u de naam van de gegenereerde XML-documentatiebestanden. Dit kan een bestands- of mapnaam zijn. Hiermee stelt u /doc:<de naam> in.

Bronafhankelijkhedenbestand genereren

Hiermee wordt een JSON-bestand gegenereerd met de lijst met alle bestanden die de compiler gebruikt voor de compilatie van de bron. Stelt in /sourceDependencies.

Bestandsnaam van bronafhankelijkheden

Hiermee geeft u het pad en/of de naam van het gegenereerde bronafhankelijkhedenbestand. Stelt in /sourceDependencies[path].

Eigenschappen van C/C++-browse-informatie

Browsegegevens inschakelen

Hiermee geeft u op of de compiler een .bsc bestand moet genereren. Stelt in /FR.

Bladeren in informatiebestand

Hiermee geeft u een optionele naam voor het browserinformatiebestand. Hiermee stelt u /FR<de naam> in.

Eigenschappen van externe C/C++-includebestanden

Behandel bestanden met hoekhaken als extern

Hiermee geeft u op of bestanden die zijn opgenomen met hoekige haken als extern moeten worden behandeld. Stel deze eigenschap in op Ja om de /external:anglebrackets compileroptie in te stellen.

Waarschuwingsniveau voor externe header

Selecteer hoe strikt de compiler moet zijn over codefouten in externe headers. Met deze eigenschap stelt u de /external:Wn compileroptie in. Als deze waarde is ingesteld op Inherit Project Warning Level of de standaardwaarde, worden de andere /external opties genegeerd.

Diagnostiek van sjablonen in externe kopteksten

Hiermee wordt aangegeven of het waarschuwingsniveau over een sjabloon-instantieringsketen geëvalueerd moet worden. Stel deze eigenschap in op Ja om de /external:templates- compileroptie in te stellen.

Codeanalyse uitschakelen voor externe headers

Hiermee schakelt u codeanalyse voor externe headers uit. Hiermee stelt u de /analyze:external- compileroptie in.

Analyseregelset voor externe headers

Geeft een overschrijvingsregelset voor codeanalyse op voor externe headers. Als deze eigenschap niet is opgegeven, wordt de Code Analysis instelling gebruikt. Hiermee stelt u de /analyze:external:ruleset path compileroptie in.

Geavanceerde eigenschappen van C/C++

Oproepconventie

Selecteer de standaardconventie voor aanroepen voor uw toepassing (kan worden overschreven door functie). Sets /Gd, /Gr, /Gz, /Gv

Choices

  • __cdecl - Hiermee geeft u de __cdecl aanroepende conventie voor alle functies, behalve C++ lidfuncties en functies gemarkeerd __stdcall of __fastcall.
  • __fastcall - Hiermee geeft u de __fastcall aanroepende conventie voor alle functies, behalve C++ lidfuncties en functies gemarkeerd __cdecl of __stdcall. Alle __fastcall functies moeten prototypen hebben.
  • __stdcall - Hiermee geeft u de __stdcall aanroepende conventie voor alle functies, behalve C++ lidfuncties en functies gemarkeerd __cdecl of __fastcall. Alle __stdcall functies moeten prototypen hebben.
  • __vectorcall - Hiermee geeft u de __vectorcall aanroepconventie voor alle functies, behalve C++ lidfuncties en functies gemarkeerd __cdecl, __fastcallof __stdcall. Alle __vectorcall functies moeten prototypen hebben.

Compileren als

Selecteer een compilatietaaloptie voor bronbestanden. Sets/TC, /TP, /interface, /internalPartition, or /exportHeader opties.

Choices

  • Standaard - standaard.
  • Compileren als C-code (/TC) - Opgegeven bronbestanden compileren als C-code. Bestanden met een .c extensie worden standaard gecompileerd als C.
  • Compileren als C++-code (/TP) - Opgegeven bronbestanden compileren als C++-code. Standaard worden alle bronbestanden die geen extensie .ixx.cppm.h hebben of die geen extensie hebben.c, gecompileerd als C++.
  • Compileren als C++-modulecode (/interface) - Opgegeven bronbestanden compileren als C++-modulecode. Bestanden met een .ixx of .cppm extensie worden standaard gecompileerd als C++-modulecode.
  • Compileer als interne C++-modulepartitie (/internalPartition) - Compileer de opgegeven bronbestanden als interne C++-modulepartitie.
  • Compileren als C++-headereenheid (/exportHeader) - Opgegeven bronbestanden compileren als C++-headereenheid. Bestanden met een .h extensie of geen extensie worden standaard gecompileerd als header-eenheden.

Specifieke waarschuwingen uitschakelen

Schakel de opgegeven waarschuwingsnummers uit. Plaats de waarschuwingsnummers in een door puntkomma's gescheiden lijst. Stelt /wd<nummer> in.

Bestand geforceerd opnemen

Specificeert een of meer verplichte includebestanden. Hiermee stelt u /FI<de naam> in.

Geforceerd #using-bestand

Met deze optie specificeert u een of meer geforceerde # using-bestanden. Hiermee stelt u /FU<de naam> in.

Inclusief weergeven

Hiermee wordt een lijst met insluitingsbestanden met compileruitvoer gegenereerd. Stelt in /showIncludes.

Volledige paden gebruiken

Gebruik volledige paden in diagnostische berichten. Stelt in /FC.

Standaardbibliotheeknaam weglaten

Hiermee geeft u de standaardbibliotheeknamen in .obj bestanden weg. Stelt in /Zl.

Interne compilerfoutrapportage

Opmerking

Deze optie is afgeschaft. Vanaf Windows Vista wordt foutrapportage beheerd door wer-instellingen (Windows Error Reporting).

Specifieke waarschuwingen behandelen als fouten

Behandelt de specifieke compilerwaarschuwing als een fout, waarbij n een compilerwaarschuwing is.

Aanvullende opties

Extra opties.