So as it turns out there's a nasty little piece of code in rapidjson's source which breaks the preprocessor and will leave things a little bit weird. The test "preprocessor_parses_escaped_character" should prove its validity.