LINUX.ORG.RU

C++ негодования тред - std::string

 , ,


0

2

Оно не умеет дешево создаться на основе существующего char* без копирования.

Писать свой класс строк как во время Сталина? Писать свой аллокатор в интересующей области памяти?

★★★★★

Последнее исправление: vertexua (всего исправлений: 4)

Ответ на: комментарий от anonymous

Практически каждый в этом треде может запросто сделать все что нужно С-way. Обсуждаеьтся как это проще сделать с теми гарантиями безопасности, которые дает С++

vertexua ★★★★★
() автор топика
Ответ на: комментарий от DarkEld3r

вообще так про «char-like objects» говорится

anonymous
()
Ответ на: комментарий от vertexua

Практически каждый в этом треде может запросто сделать все что нужно С-way.

В мечтах.

Обсуждаеьтся как это проще сделать с теми гарантиями безопасности, которые дает С++

И какие «гарантии» тебе даёт С++? Мечтатели с днища такие балаболы.

У тебя есть базовая строка из которой создано 100500 подстрок, а потом какой-то даун удалят базовую строку, внимание вопрос - как тебя спасёт С++? Ты же мне расскажешь?

anonymous
()
Ответ на: комментарий от anonymous

У тебя есть базовая строка из которой создано 100500 подстрок, а потом какой-то даун удалят базовую строку, внимание вопрос - как тебя спасёт С++? Ты же мне расскажешь?

Как мы уже обсудили в треде, используя std::string строки 100500 раз скопированы. Создавать «на основе c общим буфером» - нельзя. Тчк.

Хочешь - пиши свой my_cow_string. Но вот когда напишешь, то все проблемы с удалением базовой строки будут инкапсулированы в класс. Одна из реализаций - reference counting.

vertexua ★★★★★
() автор топика
Последнее исправление: vertexua (всего исправлений: 2)
18 декабря 2014 г.
Ответ на: комментарий от vertexua

string класс

Всё - о чём вы тут пишете - string класс без лишнего копирования и содержаший все необходимые методы - поиск, сканирование, сложение и т.п. - у меня давно есть. Меня реализация std::string тоже дико раздражает.

redsoft
()

А как бы ты сделал? Ведь std::string владеет памятью. А если не владеть, то придется руками удалять.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.