Максимальная длина строкового литерала?

Я пытаюсь создать длинный строковый литерал, который храню внутри std :: string. Если я создаю литерал длиной до 2600 символов, все печатается нормально. Если я выйду за пределы этого количества символов, я получу только несколько случайных символов мусора.

В качестве руководства я использовал стандарт C, ограничения среды указаны как «4095 символов в строковом литерале (после объединения)». Но код написан на C ++.

Поэтому мой вопрос: каково минимальное количество символов в строковом литерале C ++?

(Возможно, проблема в другом месте кода, но я хотел бы убедиться, что я не превышаю ограничение, установленное стандартом. Текст печатается в элементе управления RichEdit, поэтому я сомневаюсь, что он является виновником.)

5

Решение

Минимум указан в

Приложение Б
Количество реализации [имплициты]

Символы в строковом литерале (после конкатенации) [65 536].

Но обратите внимание, что:

1) Поскольку компьютеры конечны, реализации C ++ неизбежно ограничены в размере программ, которые они
может успешно обработать. Каждая реализация должна документировать те ограничения, где они известны. Эта документация
может ссылаться на фиксированные пределы там, где они существуют, например, как вычислять пределы переменных как функцию от доступных
ресурсы, или сказать, что фиксированные ограничения не существуют или неизвестны.

2) Пределы могут ограничивать количества, которые включают те, которые описаны ниже или другие. Число в скобках
после каждого количества рекомендуется как минимальное количество для этого количества. Тем не мение, эти величины
только руководящие принципы и не определяют соответствие
. (акцент мой)

Ваша реализация должна предоставить вам этот номер, хотя.

11

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]