Этот код работает в Visual С++ 2013, но не в gcc/clang:
#if 0
R"foo(
#else
int dostuff () { return 23; }
// )foo";
#endif
dostuff();
Visual С++ сначала удаляет if 0. Clang сначала расширяет строку R raw (и никогда не определяет dostuff). Кто прав и почему?