БС
ет 10 назад я писал парсеры разных протоколов, так я тогда ни "строки" не создавал во время парсинга ( то есть у меня не было копирований данных из исходного пакета), так и динамическую память почти не пользовал. То есть в моем случае "строка" это было два инта указателя на начала и конец строки в исходном пакете. При этом, если происходили манипуляции с этими строками в коде, они прозрачно конвертировались в std::string. Поскольку большинство объектов во время парсинга были вот эти "двух интовые строки", то у меня был отдельный memory pool под них. В плюсах считается, что выделение памяти очень медленное, а у меня их не было почти. И тогда 10-15 лет назад, это уже был не rocket since, а обычно явление, благо уже был boost который помогал писать эту магию. В добавок, парсинг был ленивый, то есть если тебе не нужен какой то блок, то но и не парсился.
В общем я буду очень удивлен, если в плюсовых фреймворках сейчас не делают также.




