149 votes

Que fait le drapeau fpermissive?

Je me demande simplement ce que le drapeau -fpermissive fait dans le compilateur g ++? J'obtiens: error: taking address of temporary [-fpermissive] que je peux résoudre en donnant le drapeau -fpermissive au compilateur.

Merci

EDIT: Je viens de trouver ce qui causait la partie erreur d’adresse temporaire! Merci les gars, je vais arranger ça maintenant.

170voto

cli_hlt Points 4623

Dès les docs :

-fpermissive
Déclassez certains diagnostics sur le code non conforme d'erreurs en avertissements. Ainsi, utiliser -fpermissive permettra à du code non conforme de se compiler.

En bout de ligne: ne l'utilisez pas si vous ne savez pas ce que vous faites!

69voto

David Schwartz Points 70129

L' indicateur -fpermissive amène le compilateur à signaler des avertissements sous forme d'avertissements sur certaines choses qui sont en réalité des erreurs (afin que certains compilateurs le permettent), afin que le code puisse être compilé même s'il n'est pas conforme aux règles de langage. Vous devriez vraiment résoudre le problème sous-jacent. Publiez le plus petit exemple de code compilable qui illustre le problème.

 -fpermissive
  Downgrade some diagnostics about nonconformant code from errors to warnings.
  Thus, using -fpermissive will allow some nonconforming code to compile.
 

22voto

leftaroundabout Points 23679

Lorsque vous avez écrit quelque chose qui n'est pas permis par la norme du langage (et, par conséquent, ne peuvent pas vraiment être bien définis comportement, ce qui est une raison suffisante pour ne pas le faire) mais il arrive à la carte pour certains type de fichier exécutable si la fed naïvement à la compilation le moteur, alors -fpermissive va le faire au lieu de l'arrêter avec ce message d'erreur. Dans certains cas, le programme va alors se comportent exactement comme vous l'avez initialement prévu, mais vous ne devriez pas compter sur elle, sauf si vous avez quelques très spécial raison de ne pas utiliser une autre solution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X