Type deduction time
The symbol __COUNTER__
is a preprocessor macro, it's expanded once only.
That means T
will always be Holder<0>
(since __COUNTER__
starts at zero), no matter the type used for the template Helper
.
See e.g. this GCC predefined macro reference for more information about __COUNTER__
.