Preprocessor
Templates are preprocessed with a simplified C-like preprocessor. The main function of this is for including headers or template fragments within another template. Like in C, all preprocessing occurs before compilation.
#include "path-relative-to-template.h"
Inserts the contents of the given file here. Files are preprocessed recursively and so may contain further preprocessor directives.
#define MACRO_A #define MACRO_B 1234 #define MACRO_C \ "Hello" \ " world" int i = MACRO_B; /* 1234 */ string s = MACRO_C; /* "Hello world" */
Defines a preprocessor macro. Like in C, any macros present in the source will be expanded to the value defined here.
#ifdef MACRO ... #else ... #endif #ifndef MACRO ... #else ... #endif
Include or exclude a block of the template from compilation depending whether a macro is defined.
#warning warning message #error error message
Emits a warning message or an error (aborts template processing).