I am guessing from # that it is only a compile-time utility. How can it be used in C/C++ programs?
Did not find much about it on the internet. Any links would be helpful.
I am guessing from # that it is only a compile-time utility. How can it be used in C/C++ programs?
Did not find much about it on the internet. Any links would be helpful.
It causes the compiler (or preprocessor) to output the error message. In C++, it also renders the translation unit ill-formed (i.e., it causes compilation to fail).
If you have several macros that could be defined and you want to be sure that only certain combinations of them are defined, you can use
#error
to cause compilation to fail if an invalid combination is defined.It can also be useful if you want to be sure that some block of code is never compiled (for whatever reason).
Here is a link to the documentation of the Gnu preprocessor explaining the
#error
and#warning
directives: http://gcc.gnu.org/onlinedocs/cpp/Diagnostics.htmlIn particular:
See also this question about the portability of these directives.
Useful to check compiler settings as well as verifying macro value combinations. Some random examples: