Size: a a a

2020 July 29

DP

Denis Paukaev in pro.cxx
Dmitriy
В мув конструкторе?
Тогда при реаллокации будет вызван конструктор копирования
почему в мув конструкторе?
источник

D

Dmitriy in pro.cxx
Denis Paukaev
почему в мув конструкторе?
Ах, в векторе...
А разве emplace_back требует наличия конструктора перемещения?
источник

DP

Denis Paukaev in pro.cxx
в emplace_back

if(size == capacity) {
 throw ...
}
источник

D

Dmitriy in pro.cxx
Можно дек взять
источник

DP

Denis Paukaev in pro.cxx
Dmitriy
Ах, в векторе...
А разве emplace_back требует наличия конструктора перемещения?
если будет релокация то требует
источник

DP

Denis Paukaev in pro.cxx
Dmitriy
Можно дек взять
я сходу не помню если честно, там не будет релокаций совсем при добавлении элементов?
источник

O

Ofee in pro.cxx
Denis Paukaev
в emplace_back

if(size == capacity) {
 throw ...
}
Да, но зачем для ультраредкого юзкейса делать отдельную специализацию emplace_back/вставлять проверку для всего остального кода? Может, просто пользователю стоит взять более подходящий контейнер?
источник

DP

Denis Paukaev in pro.cxx
не очень популярный контейнер в моих опытах )
источник

D

Dmitriy in pro.cxx
Denis Paukaev
я сходу не помню если честно, там не будет релокаций совсем при добавлении элементов?
Не будет
источник

DP

Denis Paukaev in pro.cxx
Ofee
Да, но зачем для ультраредкого юзкейса делать отдельную специализацию emplace_back/вставлять проверку для всего остального кода? Может, просто пользователю стоит взять более подходящий контейнер?
я и не говорил что так надо делать, я сказал что в очень редких случаях и правда такое может быть нужно, никаких речей про специализации не было от слова совсем
источник

R

Ruben in pro.cxx
Dmitriy
В мув конструкторе?
Тогда при реаллокации будет вызван конструктор копирования
Конструктор копирования запретить, в мув конструкторе кидать исключение
источник

R

Ruben in pro.cxx
Но я лучше просто реализую мув конструктор, обновив коллбеки
источник

R

Ruben in pro.cxx
Т.е. сделаю корректный move конструктор
источник

D

Dmitriy in pro.cxx
Ruben
Конструктор копирования запретить, в мув конструкторе кидать исключение
Тогда объект невозможно будет хранить в векторе
источник

D

Dmitriy in pro.cxx
Реаллокация требует или noexcept мув конструктора, или copy конструктора
источник

ГH

Гласси Hudobin in pro.cxx
Dmitriy
Реаллокация требует или noexcept мув конструктора, или copy конструктора
reserve()
источник

AN

Alexander N in pro.cxx
Dmitriy
Реаллокация требует или noexcept мув конструктора, или copy конструктора
Странно почему нельзя просто перекопировать память
источник

DP

Denis Paukaev in pro.cxx
Alexander N
Странно почему нельзя просто перекопировать память
возможно из-за нетривиальных конструкторов копирования/перемещения?)
источник

ОД

Олег Давыдов... in pro.cxx
Alexander N
Странно почему нельзя просто перекопировать память
Потому что это может быть некорректно. А вдруг там есть указатели на куски себя?
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander N
Странно почему нельзя просто перекопировать память
memcpy чтоли?
источник