Compilateur C++ plus strict - Les littéraux chaîne sont maintenant des constantes

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Compilateur C++ plus strict (Appmethod C++ 2007) - Index

Les littéraux chaîne sont à présent considérés comme étant par défaut de type 'const char[]'. Cela, combiné à la liaison de qualification plus stricte des types et valeurs const, peut générer des messages d'erreur dans du code compilé auparavant.

Vous pouvez activer le commutateur -Vbs pour rétablir les littéraux chaîne en non-const. Toutefois, Embarcadero recommande plutôt la mise à jour du code.

Sachez que la modification du type des littéraux chaîne peut également changer la façon dont le compilateur résoud les appels aux méthodes surchargées. Cela est illustré par l’exemple suivant :

 void foo(char *);
  void foo(const char *);
  foo("string"); // New Compiler picks foo(const char *)

Avec C++Builder2007, le code ci-dessus génère les erreurs suivantes :

Voir aussi