The #error Directive
Error directives produce compiler-time error messages.
The error messages include the argument token-string and are 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.