We are all familiar with NRF_MODULE_ENABLED macros, what is their purpose and why are they required.
However, I am wondering if there could be a better way to implement such selection system, one which would be "future proof" - GCC 7 and Clang emits warning -Wexpansion-to-defined for such macros.
The warning can be suppressed, however this behaviour pulls other problems with it - as example, I described one of the most annoying in the JetBrains ticket 'defined' preprocessor operator and token concatenation, because I thought that is their bug.
I know that older SDKs had a system which actually didn't have that problem, however I do agree that this new system is more elegant and practical. Is there any compromise between the two?