Скорее всего, максимальная длина строки будет определяться ограничениями вашей системы, чем теоретическое максимальное значение, возвращаемое max_size
. max_size
на 32-битная Windows - это 4 ГБ , но вы никогда не сможете создать строку такого размера в реальном мире на 32-битной Windows-системе.
Максимальный размер, который вы можете использовать в любой данный момент, будет варьироваться и, вероятно, будет (после учета размера объекта string
) совпадать с самым большим выделением непрерывной кучи, которое возможно в этот момент. Это зависит от конфигурации машины (сколько оперативной памяти, сколько зарезервировано для ядра, сколько других программ и их профиль памяти). Если вы затем попытаетесь сделать что-либо еще, требующее кучи памяти, вы получите исключения того или иного типа. Во-первых, вам лучше не приближаться к этому сценарию.