Est-il possible, en utilisant le préprocesseur C / C ++, de compter les lignes d'un fichier source, dans une macro ou une sorte de valeur disponible au moment de la compilation? Par exemple, puis-je remplacer MAGIC1
, MAGIC2
et MAGIC3
dans ce qui suit, et obtenir la valeur 4 en quelque sorte lors de l'utilisation MAGIC3
?
MAGIC1 // can be placed wherever you like before the relevant
// lines - either right before them, or in global scope etc.
foo(); MAGIC2
bar(); MAGIC2
baz(); MAGIC2
quux(); MAGIC2
// ... possibly a bunch of code here; not guaranteed to be in same scope ...
MAGIC3
Remarques:
- Les extensions spécifiques au compilateur des capacités du préprocesseur sont acceptables mais indésirables.
- Si cela n'est possible qu'avec l'aide d'une partie du C ++, par opposition à la construction C, c'est également acceptable mais indésirable (c'est-à-dire que j'aimerais quelque chose qui fonctionnerait pour C).
- Évidemment, cela peut être fait en exécutant le fichier source via un script de processeur externe, mais ce n'est pas ce que je demande.
__COUNTER__
et / ou BOOST_PP_COUNTER
?
int arr[MAGIC4]
et obtenir le nombre de lignes dans une section précédemment comptée de mon code.
__LINE__
qui représente le numéro de ligne actuel