В C и С++ (и нескольких других языках) горизонтальные табуляторы (ASCII-код 9) в символьных и строковых константах обозначаются в экранированной форме как '\t' и "\t". Тем не менее, я регулярно печатаю символ неэкранированного табулятора в строковых литералах, например, в "A B" (есть TAB в betreen A и B), и, по крайней мере, clang++, похоже, не беспокоит - строка кажется эквивалентны "A\tB". Мне больше нравится версия без возврата, так как длинные отступы с несколькими строками лучше читаются в исходном коде.
Теперь я спрашиваю себя, является ли это вообще законным в C и С++ или просто поддерживается моим компилятором. Насколько переносимыми являются невидимые табуляторы в символьных и строковых константах?
Удивительно, но я не смог найти ответ на этот, казалось бы, простой вопрос: ни с Google, ни со стековым потоком (я просто нашел этот неопределенный вопрос).