Pushkoff
> читай внимательно первый пост...
И что?
Топикстартер юзает push_back с экземпляром объекта, созданного дефолтным конструктором.
На что я и предложил не пушать, а ресайзить вектор. Эффект идентичный, а временных объектов не создается и не копируется.
chiaroscuro
а приоритет как же ?
типа скобок и тд :)
ну это мы загнались
RPGman
> опикстартер юзает push_back
топикастер жалуется на то что при вызове конструктора по умолчанию на стеке создается временный объект, ссылка на который передается в push_back, который копирует данные из временного объекта в тот объект который хранится в стеке... естественно что при push_back может выделяться больший буфер, с этим автор смирился, а вот с лишним копированием он смириться не может, так как оно действительно лишнее...
Дико извиняюсь... Да, временный объект все-равно будет создан внутри resize. Опачки...
а кто нибудь пробовал решения на основе Range которые александреску именовал убийцами итераторов и stl?? делитесь, как оно?
Pushkoff
Вроде как в последнем бусте они сильно допилили библиотеку Range (главное - добавили поддержку алгоритмов). Это не совсем по Александреску, но близко.
Надо будет посмотреть...
RPGman
перечитав первый пост, задался вопросом, причем здесь алокаторы?
и кто нибудь смотрел в асм листинг? по моему компилятор уже давно научился решать проблему вызова лишних пар конструктор/деструктор...
Pushkoff
> практически всегда, побаловавшись со своими велосипедами, я нахожу как это
> сделать через СТЛ не проиграв в эффективности, но сильно выиграв в количестве и
> понятности кода...
++
ну только в моём случае "прктически всегда" я бы заменил на "достаточно часто"
Pushkoff
> по моему компилятор уже давно научился решать проблему вызова лишних пар конструктор/деструктор...
А я вот был уверен, что вектор при ресайзе зовет placement new для добавляемых элементов, а не юзает insert с временным экземпляром объекта.
Ан нифига. Причем вектор ведет себя даже хуже дека на том же самом ресайзе. Один лишний вызов конструктора копирования на каждый вызов resize.
Так и не въехал... Чем такой нехороший vector и string? Лучше уж взять готовый динамический массив с граблями, нежели писать свой, тоже с граблями....
holywar again
а как всё хорошо начиналось то :)
И у каждого будет свой велосипед. Со своими квадратными колёсами.
Necrys
> Со своими квадратными колёсами.
и педалями вовнутрь :)
Тема в архиве.