STL оптимизирует распределение памяти для строковых объектов, предоставляя память для строковых объектов из пула памяти, хранящегося в стандартной библиотеке. Возможно ли отключить эту оптимизацию?
Я использую VS 2008
Нет, вы не можете. Из ссылки C ++ на строку :: строка:
За исключением конструктора копирования, необязательный конечный параметр существует для всех конструкторов basic_string, тип которых является аргументом шаблона Allocator. Этот параметр влияет на модель выделения памяти, которая будет использоваться для объекта. Чтобы обеспечить лучшую читаемость, и поскольку при неизвестной реализации компилятора на модель выделения памяти для строк (allocator) влияет ее значение , оно не было включено в объявления выше, но см. Элемент базового шаблона объявление впереди для более полного объявления.
Следующий вопрос поможет вам понять, как можно манипулировать std::basic_string для использования с различными распределителями
std::basic_string
Как я могу выделить std :: string в стеке, используя реализацию строки glibc