Size: a a a

2020 January 23

AE

Alexey Edelev in Qt
У меня для вас плохая новость
источник

AE

Alexey Edelev in Qt
QByteArray(const QByteArray &&) не определен
источник

AE

Alexey Edelev in Qt
в 5.12.3
источник

AS

Anatoly Shirokov in Qt
Alexey Edelev
QByteArray(const QByteArray &&) не определен
это не страшно, по идее, значит default будет сгенерен
источник

AE

Alexey Edelev in Qt
Anatoly Shirokov
это не страшно, по идее, значит default будет сгенерен
Ну так это implicit sharing
источник

AE

Alexey Edelev in Qt
там default может и не прокатить
источник

AS

Anatoly Shirokov in Qt
Alexey Edelev
Ну так это implicit sharing
move не изменит конфигурацию ссылок
источник

AE

Alexey Edelev in Qt
Alex
да я сомневаюсь, конечно, что может быть такой баг, но уже голову сломал в поисках причины. Заменил на свой самописный CByteArray - всё ОК, но у него вообще нет move операций. Сейчас попробую добавить и посмотрю.
А какой именно QByteArray начинает плохо работать
источник

AS

Anatoly Shirokov in Qt
там же просто swap будет на уровне сгенеренным компилятором move конструктором
источник

AE

Alexey Edelev in Qt
потомоу что не удивлюсь если тот  которому будет сделан move будет указывать на мусор
источник

AE

Alexey Edelev in Qt
Anatoly Shirokov
там же просто swap будет на уровне сгенеренным компилятором move конструктором
При таком раскладе размер тоже должен по идее мувнуться
источник

A

Alex in Qt
Alexey Edelev
потомоу что не удивлюсь если тот  которому будет сделан move будет указывать на мусор
естественно, старый никто и не пытается использовать
источник

AE

Alexey Edelev in Qt
Alex
естественно, старый никто и не пытается использовать
Ну я на всякий
источник

AE

Alexey Edelev in Qt
тогда действительно странно
источник

A

Alex in Qt
inline QByteArray(QByteArray && other) noexcept : d(other.d) { other.d = Data::sharedNull(); }
5.14.0
источник

AE

Alexey Edelev in Qt
Да я уже посмотрел в 5.14 заимплементили
источник

A

Alex in Qt
если совсем точно, у меня вектор тривиальных структур с QByteArray внутри. Когда я делаю return вектора, на уровне выше битые значения QByteArray, остальные поля структур в порядке.
источник

A

Alex in Qt
на return вызывается мув конструктор вектора - видимо, так работает RVO, потому что внутри функции это не rvalue
источник

AE

Alexey Edelev in Qt
Alex
если совсем точно, у меня вектор тривиальных структур с QByteArray внутри. Когда я делаю return вектора, на уровне выше битые значения QByteArray, остальные поля структур в порядке.
Ну это вообще пофиг
источник

AE

Alexey Edelev in Qt
сайз берется из d
источник