c++ - Feature request: __COUNTER__
- Matthew Wilson (34/34) Mar 01 2008 This is originally a Microsoft-specific (VC++ 7.0+) pre-processor featur...
This is originally a Microsoft-specific (VC++ 7.0+) pre-processor feature,
but is slowly gaining interest in other areas. I believe GCC 4.3 contains
this.
Basically, it resolves, on a per-translation unit basis, to an integral
number that increments (starting at 0) each time it is used.
Consider the following program:
#include <stdio.h>
#define USE_COUNTER() printf("%d\n", __COUNTER__)
int main()
{
int i = __COUNTER__;
int j = __COUNTER__;
USE_COUNTER();
USE_COUNTER();
printf("%d\n", __COUNTER__);
printf("%d\n", __COUNTER__);
printf("i = %d\n", i);
printf("j = %d\n", j);
return 0;
}
It produces the following output:
2
3
4
5
i = 0
j = 1
I have an exceedingly useful, er, use for this feature, and would like to be
able to offer a wider range of compilers for the library that will be
created than just VC++ 7+ and GCC 4.3+.
I recognise that the pre-compiled header stuff might be tricky, but still
wanted to request that you consider adding this to DMC++'s armoury. :-)
Cheers
Matt
Mar 01 2008








"Matthew Wilson" <matthew hat.stlsoft.dot.org>