The #error Directive
Error directives produce compiler-time error messages.
The error messages include the argument token-string and are currently not subject to macro expansion. These directives are most useful for detecting programmer inconsistencies and violation of constraints during preprocessing. The following example demonstrates error processing during preprocessing:
#if !defined(__cplusplus) #error C++ compiler required. #endif
When #error directives are encountered, compilation terminates.