LINUX.ORG.RU

C++ и std::string


1

1

В очередной раз потребовалось нечто большее что может std::string, а именно split. Возникла идея написать свой класс String с блэкджеком, в рамках проекта. Можно также использовать прекрасный QString, который все может и имеет прекрасные интерфейсы, но тянуть что-то из Qt отдельно не хочется.
А как вы боретесь с беднотой std::string?

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

а не надо экономить на спичках, создание объекта на стеке (без тяжелого конструктора) - практически ничто, а выделение памяти под строки точно так же придется делать и в С, strcat к пустому месту не применишь

Хочу лишь добавить, что в C придется еще и вручную вызывать все «деструкторы» таких строк, что довольно утомительно.

m0rph ★★★★★
()
Ответ на: комментарий от vvviperrr

Да там же не весь буст надо, а только кусочек же ну.

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

Смотрите выше по топику. wota уже всё написал:

вроде как можно, только в деструкторе нудо будет руками дернуть деструктор родителя

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

хы хы если контора предлагает писать костыли в собственном неймспейсе вместо того чтобы использовать прекрасную boost::string_algo то укажите им на дверь пусть переквалифициуются я бы бежал с такой работы если только вы не драйвера разрабатываете

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

я выше же и исправился ) по факту надо не доводить до необходимости заводить деструктор и члены класса с деструкторами, чтоб не было проблем

wota ★★
()
Ответ на: комментарий от ssvda

И каким образом это поможет? Как связано дергание деструктора предка и виртуальные деструкторы?

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

Проще уж обертку написать над std::string (list,vector).

проще написать одну функцию и оставить в проекте стандартные string, list, vector, по простым причинам:

а) человеку, который будет правит код с std::string, std::list и пр. , будет проще чем тому, которому достанется MyString, MyList etc.

б) не надо делать массу бесполезной работы, чтоб покрыть все имеющиеся возможности строк и контейнеров

в) насчет С++11 - придется делать выбор поддерживать его или нет, в первом случае придется лепить макросы для сборки старыми компиляторами и опять же делать массу работы, во-втором лишаешь себя плюшек и оптимизаций за счет rvalue references

wota ★★
()
Ответ на: комментарий от ssvda

Ты же в проекте не один? Если нет, то тебя дисциплинированно изобьют другие программисты.

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

А сори, я подумал это на другое сообщение ответ. Ну а смысл так извращаться? профит неочевиден.

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