I have a piece of code which uses __COUNTER__
macro to generate unique names for variables.
Is this code portable ? I know that GCC and MSVS support it. What's about other compilers ? Is the macro defined by standard (as far as I know before C++14 it wasn't).
It's definitely not standard.
It's a compiler extension (GNU C extensions)
The common predefined macros are GNU C extensions.
and a Microsoft-specific one,
Microsoft-Specific Predefined Macros:
__ COUNTER __
also supported by clang as language extension.
The standard doesn't mention it anywhere.
GCC manual, section Common Predefined Macros, states
The common predefined macros are GNU C extensions.
I've also never seen this macro in the C99, C11 or C++11 standards.
As for practical portability: Clang supports it, too.
It seems NO. When I ctrl+f "__COUNTER__" on standard pdf, I couldn't find anything >o<
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With