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