Size: a a a

2020 March 28

ПК

Побитый Кирпич in pro.cxx
Dmitry Berkut
Переслано от Dmitry Berkut
Есть ли какой нибудь специальный термин, обозначающий явный вызов конструктора родительского класса в конструкторе derived класса? Делегирование как то не очень вписывается в этот кейс
"Вызов конструктора базового класса"
источник

DB

Dmitry Berkut in pro.cxx
Побитый Кирпич
"Вызов конструктора базового класса"
Похоже, ничего хитрее все таки нет, спасибо
источник
2020 March 29

DK

Denis Kormalev in pro.cxx
а кто нибудь знает можно ли как нибудь деку научить в move? https://godbolt.org/z/edQMjE
источник

DK

Denis Kormalev in pro.cxx
ок, вопрос видимо снимается, потому что без оптимизации у вектора тоже проседание (хотя и не такое сильное)
источник

P

Pepe 🐸 in pro.cxx
код не читал, но что концептуально означает, "научить в мув"? В терминах С++
источник

DK

Denis Kormalev in pro.cxx
Pepe 🐸
код не читал, но что концептуально означает, "научить в мув"? В терминах С++
там можно код н читать, просто аутпут глянуть. У деки, если делать на каждом добавлении в контейнер - мув этого контейнера - очень сильно тормозится по сравнению с просто добавлением. На других контейнерах на О3 такого не наблюдается. На О0 это еще у вектора, но все равно не такая сильная разница, как у деки
источник

P

Pepe 🐸 in pro.cxx
Denis Kormalev
там можно код н читать, просто аутпут глянуть. У деки, если делать на каждом добавлении в контейнер - мув этого контейнера - очень сильно тормозится по сравнению с просто добавлением. На других контейнерах на О3 такого не наблюдается. На О0 это еще у вектора, но все равно не такая сильная разница, как у деки
но то есть мув конструктор вызывается?
источник

DK

Denis Kormalev in pro.cxx
угу. И на деке это чот медленно
источник

P

Pepe 🐸 in pro.cxx
Pepe 🐸
но то есть мув конструктор вызывается?
может быть там nrvo у деки не работает, изза мува а у вектора это не важно?
источник

DK

Denis Kormalev in pro.cxx
там нет nrvo, это мув аргумента
источник

DK

Denis Kormalev in pro.cxx
или ты про внутренности мув конструктора деки? этого я не могу предполагать конечно
источник

P

Pepe 🐸 in pro.cxx
Denis Kormalev
или ты про внутренности мув конструктора деки? этого я не могу предполагать конечно
нет, я про то что если вызвать конструктор вектора и деки то у вектора он сильно быстрее. а если без std::move то скорее всего там какая то оптимизация работает которая быстрее чем мув?
источник

DK

Denis Kormalev in pro.cxx
во варианте без мува там вообще ничего не вызывается, просто добавляется. Ты код посмотри, если интересно. Но в целом как я и написал выше - О3 был основной разницей, на О0 уже не так оно выглядит
источник

CD

Constantine Drozdov in pro.cxx
Denis Kormalev
во варианте без мува там вообще ничего не вызывается, просто добавляется. Ты код посмотри, если интересно. Но в целом как я и написал выше - О3 был основной разницей, на О0 уже не так оно выглядит
а не у деки ли move ctor не noexcept?
источник

_

__gg in pro.cxx
Всем привет. Решил изучить досконально allocator'ы. Столкнулся с непониманием распределения памяти. Объясните, почему при вызове функции test<std::vector> (68 строчка) выделяется 4096 байтов, а когда проделываю то же самое (как мне кажется это то же самое) через цикл, в сумме получаю 4024. Куда делись эти 72 байта?
https://godbolt.org/z/lZaYS3
источник

НИ

Никита Иванов in pro.cxx
v.size() замени на v.capacity()
источник

_

__gg in pro.cxx
Никита Иванов
v.size() замени на v.capacity()
Спасибо
источник

DK

Denis Kormalev in pro.cxx
Constantine Drozdov
а не у деки ли move ctor не noexcept?
Да, у нее вроде
источник

m

magras in pro.cxx
Вы сравниваете мув контейнера в цикле и работу с неподвижным контенером. Единствееное что может сделать компилятор в таком случае - это привести код с мувом к работе с неподвижным объектом и это выглядит не тривиальным. NRVO здесь не поможет, разве что упростит анализ для оптимизатора.
источник

DK

Denis Kormalev in pro.cxx
magras
Вы сравниваете мув контейнера в цикле и работу с неподвижным контенером. Единствееное что может сделать компилятор в таком случае - это привести код с мувом к работе с неподвижным объектом и это выглядит не тривиальным. NRVO здесь не поможет, разве что упростит анализ для оптимизатора.
Вот мне и было интересно почему для вектора все работает ок, а для деки нет (для листа еще понятно, там нечего мувать особо).
Понятно что нрво тут ни при чем, я про него и не говорил
источник