DirectiveDefault nameGenerates
$STRING<Name>Stra function returning the text
$STREAMABLE<Name>Streamablea class holding the parameters, printable with <<
$ERROR<Name>Errora function printing the text to std::cerr, then exiting
$EXCEPTION<Name>Exceptionan exception class holding the parameters
$THROWThrow<Name>a [[noreturn]] function throwing that exception
$SYSLOGLog<Name>a function sending the text to syslog()

All are off until enabled. What they share — ENABLE, the prefix and postfix rules, LOCALE EXTRA — is on Naming & switching; where the functions live — free, MEMBER OF, MEMBER AS — on Member functions.