2010-11-06 13 views
3

Quelqu'un peut-il s'il vous plaît liste un tous les opérateurs de temps de compilation en C++?Compiler les opérateurs de temps

+2

Tous les opérateurs peuvent potentiellement être évalués au moment de la compilation (par exemple, pliage constant). Mais je suppose que vous voulez dire des choses comme 'sizeof'? –

+3

Peut-être pourriez-vous lancer la liste avec un exemple de ce que vous considérez comme un "opérateur de compilation". Je ne suis pas au courant d'un tel terme en C++. –

+0

"Opérateurs" ne sont pas le temps de compilation, les valeurs qu'ils opèrent sur la potentialité sont. – GManNickG

Répondre

7

Il existe deux opérateurs en C++ dont le résultat peut toujours être déterminé au moment de la compilation, quel que soit le ou les opérandes, et ceux-ci sont sizeof [1] et :: [2].

Bien sûr, il y a beaucoup d'utilisations particulières d'autres opérateurs qui peuvent être résolus au moment de la compilation, par exemple ceux listés dans la norme pour expressions de constantes entières.

[1] C99, contrairement à C++, a des types de tableaux de longueur variable. sizeof appliqué à un VLA ne peut pas être déterminé au moment de la compilation. Certains compilateurs C++ fournissent des VLA en tant qu'extension.

[2] c'est-à-dire, il peut être déterminé au moment de la compilation quelle entité est le résultat de l'expression. Si l'entité est un objet, alors la valeur de l'objet est une autre affaire.