Sticky settings
An artefact directive changes the current settings; every later $MESSAGE copies them. So a setting applies to the messages after it, until it is changed again:
$STRING ENABLE
$MESSAGE A # AStr
$STRING DISABLE
$MESSAGE B # nothing
$MESSAGE C : STRING # CStr — this message only
Names
A generated name is prefix + message name + postfix.
| Artefact | Prefix | Postfix |
|---|---|---|
$STRING | Str | |
$STREAMABLE | Streamable | |
$ERROR | Error | |
$EXCEPTION | Exception | |
$THROW | Throw | |
$SYSLOG | Log |
The first PREFIX, POSTFIX, NOPREFIX or NOPOSTFIX given to an artefact replaces both defaults; later ones change only their own side:
$STRING PREFIX get # getHello (not getHelloStr)
$STRING POSTFIX Text # getHelloText
$EXCEPTION NOPREFIX NOPOSTFIX # Hello
Two artefacts must not end up with the same name for the same message with the same parameters — the C++ compiler would reject the duplicate.
LOCALE EXTRA
On by default: each function comes twice, the second with a trailing std::locale const &loc that chooses the language and the number format. LOCALE EXTRA DISABLE drops that overload. For $EXCEPTION it is the constructor taking a locale — generated anyway when $THROW needs it.

