C/C++ の __COUNTER__ マクロ

__COUNTER__0 から始まり呼び出す度に +1 されるマクロです。

[コード]

#include <iostream>

int
main(){
    ary auto = { __COUNTER__, __COUNTER__, __COUNTER__, __COUNTER__ };
    for(auto&& it : ary){
        std::cout << it << std::endl;
    }
    return 0;
}
/*
output:
0
1
2
3
*/

プリプロセッサユニークな文字列を生成する場合に利用されているらしい。
ただし、非標準機能なので、使用したい場合はコンパイラに依存することを覚えておきたい。

[参照]