Ответ 1
С++ 2003, Приложение B, (информативный) Объемы реализации (извините, у меня нет С++ 2011)
2) Пределы могут ограничивать количества, которые включают в себя описанные ниже или другие. Число в скобках после каждого количества рекомендуется как минимум для этого количества. Однако эти величины только рекомендации и не определяют соответствия.
...
- Символы в одной логической строке источника [65 536].
Вы не спрашивали об этом, но они могут быть полезны, а также:
- Уровни вложенности выражений в скобках в полном выражении [256].
- Идентификаторы макросов, определенные одновременно в одной единицы перевода [65 536].
- Аргументы в одном вызове макроса [256].
- Количество символов во внутреннем идентификаторе или имени макроса [1 024].
- Идентификаторы макросов, определенные одновременно в одной единицы перевода [65 536].
- Параметры в одном определении макроса [256].
Postscript: Стоит отметить, что такое "одна логическая строка источника". Логическая строка источника - это то, что у вас после:
- Символы физического исходного файла сопоставляются с основным источником набор символов
- триграф последовательности (2.3) заменены соответствующими односимвольными внутренними представлениями
- Каждый экземпляр символа новой строки и непосредственно предшествующий символ обратной косой черты удаляется
Логическая строка источника - это то, что у вас до:
- Исходный файл разбивается на токены предварительной обработки.
- Выполняются предпроцессорные директивы и расширяются макро-вызовы.
[цитаты из С++ 2003, 2.1 Фазы перевода]
Итак, если проблема OP заключается в том, что макросы расширяются до разумной длины строки, мой ответ не имеет значения. Если проблема OP связана с тем, что его исходный код (после работы с \
, \n
) может быть слишком длинным, мой ответ стоит.