Size: a a a

2020 July 09

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
disba1ancer
намёк на оператор присвоения?
Ну например
источник

VS

Vlad Serebrennikov in pro.cxx
Андрей Руссков
хм кстати это интересная риторика. Что есть "valid state"? По идее, moved out объекту достаточно уметь делать одну вещь - удаляться без UB )
это не то что не риторика, а тот нечастый случай, когда можно не искать определение по тексту, а прямо открыть одну из глав с определениями
http://eel.is/c++draft/definitions#defns.valid
источник

АР

Андрей Руссков... in pro.cxx
"удовлетворяются инварианты типа" это очень широкое определение
источник

VS

Vlad Serebrennikov in pro.cxx
Андрей Руссков
"удовлетворяются инварианты типа" это очень широкое определение
а что более конкретное можно сказать про объект в общем случае?
источник

VS

Vlad Serebrennikov in pro.cxx
на мой взгляд, редакторы или автор(ы) этой формулировки и так сделали все возможное, приведя пример (не является нормативным), где идет речь о предусловиях
источник

АР

Андрей Руссков... in pro.cxx
ну я про другое
источник

АР

Андрей Руссков... in pro.cxx
вот есть у меня класс Foo который умеет делать foo
источник

АР

Андрей Руссков... in pro.cxx
но moved out состояние Foo таково, что foo вызывать нельзя
источник

АР

Андрей Руссков... in pro.cxx
но при этом объект совершенно корректно удаляется
источник

АР

Андрей Руссков... in pro.cxx
является ли такое moved out состояние объекта "valid"?
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Ты пишешь класс, ты задаёшь инварианты.
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Я выше писал, что да, такая ситуация возможна.
источник

VS

Vlad Serebrennikov in pro.cxx
Андрей Руссков
является ли такое moved out состояние объекта "valid"?
да, почему нет
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Например, у тебя ресурс, который после создания надо донастроить перед операцией. У тебя тоже было бы throw / UB пока настройка не завершена.
источник

АР

Андрей Руссков... in pro.cxx
получается что я сам решаю что есть "valid state" для моего T
источник

VS

Vlad Serebrennikov in pro.cxx
конечно
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
А при желании, наоборот, ты можешь усилить требования стандарта и рассказать, что именно делают move ctor / move assign.
источник

АР

Андрей Руссков... in pro.cxx
получается что гарантия на "valid state" значит ровно ничего )
источник

VS

Vlad Serebrennikov in pro.cxx
Андрей Руссков
получается что гарантия на "valid state" значит ровно ничего )
это гарантия того, что состояние объекта все еще тебе подконтрольно
источник

АР

Андрей Руссков... in pro.cxx
я бы доопределил "valid state" до хотя бы "destructible without UB"
источник