Size: a a a

2020 May 01

MM

Mikhail Matrosov in pro.cxx
Artöm Bakri Al-Sarmini
По значению его что-то другое не устроило
в том-то и фишка, что при передаче по значению тоже есть двойная индирекция
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Надо пересмотреть
источник

v

vehlwn in pro.cxx
Mikhail Matrosov
в том-то и фишка, что при передаче по значению тоже есть двойная индирекция
Да что за индерецкия
источник

MM

Mikhail Matrosov in pro.cxx
Constantine Drozdov
выглядит будто компилятор ниасилил доказать, что unique_ptr после перемещения 0
вот именно
источник

CD

Constantine Drozdov in pro.cxx
я про подобное очень много ныл, но нам нужно немного borrow checker, чтобы все работало
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
vehlwn
Да что за индерецкия
Читай разыменование
источник

MM

Mikhail Matrosov in pro.cxx
vehlwn
В смысле условный delete? Он по стандарту обязан ничего не делать, если получил nullptr.
да, но в реализации проверка есть. хз, может так считается быстрее
источник

v

vehlwn in pro.cxx
Artöm Bakri Al-Sarmini
Читай разыменование
А двойная почему?
источник

v

vehlwn in pro.cxx
Mikhail Matrosov
да, но в реализации проверка есть. хз, может так считается быстрее
Значит авторы сделали лишнюю проверку снаружи delete, потому что она уже есть внутри.
источник

CD

Constantine Drozdov in pro.cxx
Mikhail Matrosov
да, но в реализации проверка есть. хз, может так считается быстрее
в стандарте деструктор в точности кодом if (get_pointer()) get_deleter()(get_pointer())
источник

v

vehlwn in pro.cxx
Constantine Drozdov
в стандарте деструктор в точности кодом if (get_pointer()) get_deleter()(get_pointer())
Хочешь сказать кастомный удалятор уник птра не обязан быть валиден для nullptr?
источник

CD

Constantine Drozdov in pro.cxx
vehlwn
Хочешь сказать кастомный удалятор уник птра не обязан быть валиден для nullptr?
хочу сказать, что стандарт требует от unique_ptr не дергать с nullptr удалятор
источник

v

vehlwn in pro.cxx
Constantine Drozdov
хочу сказать, что стандарт требует от unique_ptr не дергать с nullptr удалятор
Вот откуда лишняя проверка.
источник

CD

Constantine Drozdov in pro.cxx
проблема-то не в этой проверке
источник

CD

Constantine Drozdov in pro.cxx
проблема, что тип переменной не может быть изменен после её создания :(
источник

MM

Mikhail Matrosov in pro.cxx
vehlwn
Вот откуда лишняя проверка.
да можно было без проблем сделать другую реализацию для кастомного делитера
источник

CD

Constantine Drozdov in pro.cxx
и, видимо, С++ не хватает целого пласта runtime equivalent types
источник

MM

Mikhail Matrosov in pro.cxx
Constantine Drozdov
проблема, что тип переменной не может быть изменен после её создания :(
эмм?..
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Может подумали, что ифчик лучше, чем лишний раз вызывать жирный кастомный удалятор
источник

CD

Constantine Drozdov in pro.cxx
представим код
void f(int x) {
  if (x % 2) ++x;
  //теперь x это четное число
}
источник