Q:

why aren't newlines / other control sequences printed with static_assert?

int main(int argc, char **argv) {
    static_assert(false, R"error(This is an error message.  You need to

1. Pick up the phone.
2. Call GhostBusters.
3. Run and hide.

)error");
}

gives
error: static_assert failed "This is an error message. You need to\n\n1. Pick up the phone.\n2. Call GhostBusters.\n3. Run and hide.\n\n"
    static_assert(false, err);
    ^             ~~~~~
1 error generated.

Does anybody know the reason these are "unescaped"?  Is it compiler / platform dependent?  Part of the standard?

A:

GCC gives you the newlines you want: https://godbolt.org/g/jS7Sgm
The exact presentation depends on the compiler.  Printing escape codes or not can probably best be described as a "quality of implementation" issue.

