Compatibilité du compilateur C++
Remonter à Compilateur C++
Projet > Options > Compilateur C++ > Compatibilité
Utilisez cette boîte de dialogue pour définir les options de compatibilité du compilateur C++ spécifiques.
Les options de cette boîte de dialogue fournissent une compatibilité descendante avec les versions antérieures du compilateur. En général, ces options doivent seulement être définies sur True
quand une telle compatibilité est requise. Leurs valeurs par défaut sont typiquement False
.
Sommaire
Options | Description |
---|---|
Cible, Appliquer, Enregistrer |
Voir Options de la cible. |
Eléments communs |
Options de compatibilité C++
Options de compatibilité C++ | Description | Commutateurs du compilateur | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
Pointeurs de base virtuels 'Slow' |
Utilise des pointeurs de base virtuels 'slow'. Valeur par défaut = False. |
-Vv |
N/A |
Plate-forme non prise en charge |
-Vv |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Déplacements de constructeurs |
Prend en charge les déplacements de constructeurs. Valeur par défaut = False |
-Vc |
N/A |
Plate-forme non prise en charge |
-Vc |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Spécialisation de template explicite comme fonction membre |
Autorise les spécialisations de templates explicites comme fonctions membres. Valeur par défaut = False |
-Vbx |
N/A |
Plate-forme non prise en charge |
-Vbx |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Ancienne disposition de classe Borland |
Conservée par souci de compatibilité, cette option force le compilateur C++ à agencer les classes dérivées de la même façon que dans les versions antérieures de C++Builder. Activez cette option si vous avez besoin de compiler des fichiers source que vous voulez utiliser avec les versions antérieures de C++Builder (par exemple, si vous avez besoin de travailler avec une DLL que vous ne pouvez pas recompiler, ou si vous avez des fichiers de données anciens contenant des dispositions de classes figées). Valeur par défaut = False |
-Vl |
N/A |
Plate-forme non prise en charge |
-Vl |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Arguments de classes de style ancien |
Prend en charge les arguments de classes de style ancien. Valeur par défaut = False |
-Va |
N/A |
Plate-forme non prise en charge |
-Va |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Spécialisation de template explicite de style ancien |
Permet la spécialisation de template explicite de style ancien. Valeur par défaut = False |
-Vbe |
N/A |
Plate-forme non prise en charge |
-Vbe |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Génération virdef de style ancien |
Utilise la génération virdef de style ancien. Valeur par défaut = False |
-Vs |
N/A |
Plate-forme non prise en charge |
-Vs |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Empiler 'this' en premier |
Place 'this' en premier, comme en Pascal. Le compilateur pousse généralement les paramètres sur la pile de la droite vers la gauche. Valeur par défaut = False |
-Vp |
N/A |
Plate-forme non prise en charge |
-Vp |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Compatibilité VC++ |
Pour fournir la compatibilité avec Microsoft Visual C++, substitue |
-VM |
N/A |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
VTable en avant |
Place le pointeur de table virtuelle au début de la disposition d'objet. Valeur par défaut = False |
-Vt |
N/A |
Plate-forme non prise en charge |
-Vt |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Classe de base vide de longueur zéro |
Généralement, la taille d'une classe est au moins d'un octet, même si aucune donnée membre n'y est définie. Si cette option est activée, le compilateur ignore cet octet inutilisé lorsqu'il détermine l'agencement mémoire et la taille cumulée des classes dérivées ; les classes de base vides ne consomment plus d'espace dans les classes dérivées. Valeur par défaut = False |
-Ve |
N/A |
Plate-forme non prise en charge |
-Ve |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Fonctions de membre de classe vide de longueur zéro |
Généralement la taille d'un membre de donnée dans une définition de classe occupe au moins un octet. Quand cette option est activée, le compilateur autorise une structure vide de taille zéro. Valeur par défaut = False |
-Vx |
N/A |
Plate-forme non prise en charge |
-Vx |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Options générales
Options générales | Description | Commutateurs du compilateur | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
Compatibilité descendante |
Active toutes les options de compatibilité |
-Vb |
N/A |
Plate-forme non prise en charge |
-Vb |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Désactiver l'analyseur digraphe lexical |
Désactive l'analyseur digraphe lexical. Les digraphes sont des séquences de deux caractères qui représentent un caractère unique pouvant être difficile à reproduire sur certains claviers. Si cette option est définie sur True, de tels diagraphes ne sont pas reconnus. Valeur par défaut = False |
-Vg |
N/A |
Plate-forme non prise en charge |
-Vg |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Ne pas replier ref-to-ref |
Auparavant, une référence vers une référence était illégale. Le nouveau comportement par défaut consiste à suivre les règles C++11. Le compilateur réduit désormais les deux références. Par exemple : typedef int & intr;
typedef intrr &;
Le type |
-Vbc |
N/A |
Plate-forme non prise en charge |
-Vbc |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Ne pas substantyper la convention d'appel |
Lorsque cette option est activée, le compilateur inhibe la distinction faite sur les noms de fonction quand la seule et unique différence se résume aux options d'incompatibilité dans la génération du code. Par exemple, avec cette option définie, le lieur ne détecte pas un appel à une fonction membre __fastcall utilisant la convention d'appel cdecl. Cette option n'est fournie qu'à des fins de compatibilité descendante ; elle vous permet de lier d'anciens fichiers de bibliothèque que vous ne pouvez pas recompiler. Valeur par défaut = False |
-VC |
N/A |
Plate-forme non prise en charge |
-VC |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Activer toutes les options de compatibilité |
Active la plupart des options de compatibilité utilisées avec l'ancien code :
Valeur par défaut = False |
-Vo |
N/A |
Plate-forme non prise en charge |
-Vo |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Activer les nouveaux noms d'opérateurs |
Active les nouveaux noms d'opérateurs, tels que 'and', 'or', 'and_eq', 'bitand', et ainsi de suite. Valeur par défaut = False |
-Vn |
N/A |
Plate-forme non prise en charge |
-Vn |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Portée de l'instruction for |
Spécifie la portée des variables déclarées dans les expressions des boucles for. La sortie du segment de code suivant change selon le paramétrage de cette option : int main(void)
{
for(int i=0; i<10; i++)
{
cout << "Inside for loop, i = " << i << endl;
} //end of for-loop block
cout << "Outside for loop, i = " << i << endl; //error without this option
} //end of block containing for loop
Lorsque cette option est désactivée (valeur par défaut), la variable i sort de la portée quand le traitement atteint la fin de la boucle for. Lorsque vous compilez ce code en désactivant cette option, une erreur de compilation survient indiquant un symbole non défini. Si l'option Portée de l'instruction for est activée, la variable i sort de la portée quand le traitement atteint la fin du bloc contenant la boucle for. Dans ce cas, la sortie du code serait : Intérieur de la boucle, i = 0 ... Extérieur de la boucle, i = 10 Valeur par défaut = False |
-Vd |
N/A |
Plate-forme non prise en charge |
-Vd |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Fonctions globales dans les segments |
Génère toutes les fonctions globales dans leur propre segment virtuel ou faible. |
-VA |
N/A |
Plate-forme non prise en charge |
-VA |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Algorithme de recherche d'en-tête Microsoft |
Utilise les algorithmes de recherche Microsoft pour localiser les fichiers d'en-tête. |
-VI |
N/A |
Plate-forme non prise en charge |
-VI |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Code natif pour MBCS |
Emet du code natif au lieu de l'Unicode pour les caractères multi-octets. |
-Vw |
N/A |
Plate-forme non prise en charge |
-Vw |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Appels non const pour un objet const |
Permet l'appel d'une fonction membre non-const pour un objet const. |
-Vbn |
N/A |
Plate-forme non prise en charge |
-Vbn |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Liaison de références non-const |
Permet la liaison de références non-const. |
-Vbr |
N/A |
Plate-forme non prise en charge |
-Vbr |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Littéraux chaîne non-const |
Ne traite pas les littéraux chaîne en tant que const. |
-Vbs |
N/A |
Plate-forme non prise en charge |
-Vbs |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Anciennes règles 'using' dans les templates |
Utilise les anciennes règles Borland pour 'using' dans les templates. |
-Vbu |
N/A |
Plate-forme non prise en charge |
-Vbu |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Ancienne recherche d'inclusion 8.3 |
Utilise l'algorithme de recherche 8.3 pour localiser les fichiers d'en-tête. |
-Vi |
N/A |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Ancienne résolution de surcharge |
Utilise les anciennes règles de résolution de surcharge. |
-Vbo |
N/A |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Anciennes règles de type pour les opérateurs ternaires |
Utilise les anciennes règles de type Borland pour les opérateurs ternaires. |
-Vbt |
N/A |
Plate-forme non prise en charge |
-Vbt |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Inverser les constantes multicaractères |
Le compilateur inverse l'ordre des constantes multicaractères. |
-Vr |
N/A |
Plate-forme non prise en charge |
-Vr |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Options -Vb du compilateur pour BCC32/BCCOSX
Remarque : Plusieurs options de compatibilité ont des commutateurs du compilateur pour BCC32 et BCCOSX qui commencent par -Vb. BCC64 ne prend pas en charge ces options de compatibilité. Les options de compatibilité -Vb sont présentées dans le tableau suivant :
Commutateur de ligne de commande | Signification |
---|---|
-Va |
Prend en charge les arguments de classe de style ancien. |
-Vb |
Active tous les commutateurs -Vb. Active la compatibilité descendante avec les versions Bcc 5.8.2 et antérieures. |
-Vb+ |
Active tous les commutateurs -Vb. |
-Vb- |
Désactive tous les commutateurs -Vb. |
-Vb. |
Réinitialise tous les commutateurs -Vb à leurs valeurs par défaut. Disponible seulement sur la ligne de commande, pas dans l'EDI. |
-Vbc |
Ne pas replier ref-to-ref et autoriser les références qualifiées. |
-Vbe |
Permet la spécialisation de template explicite de style ancien. |
-Vi |
Utilise l'ancien algorithme 8.3 pour localiser les fichiers d'en-tête. |
-Vbn |
Permettre l'appel d'une fonction membre non-const ou non-volatile pour un objet const ou volatile. |
-Vbo |
Utilise les anciennes règles Borland de résolution de surcharge. |
-Vbr |
Autoriser les anciennes règles Borland pour la liaison de références. |
-Vbs |
Traiter les littéraux chaîne en tant que non-const. |
-Vbt |
Utilise les anciennes règles de type Borland pour les opérateurs ternaires. |
-Vbu |
Utilise les anciennes règles Borland pour 'using' dans les templates. |
-Vbx |
Autorise les spécialisations de templates explicites comme fonctions membres. |
Voir aussi
- Options non prises en charge par les compilateurs C++ améliorés par Clang
- C++ (options partagées)
- BCC32, le compilateur C++ pour Windows 32 bits
- BCC32C.EXE
- BCC64, le compilateur C++ pour Windows 64 bits
- BCCOSX, le compilateur C++ pour OS X
- BCCIOSARM, le compilateur C++ pour le périphérique iOS 32 bits
- BCCIOSARM64, le compilateur C++ pour le périphérique iOS 64 bits
- BCCAARM, le compilateur C++ pour Android