Size: a a a

2020 June 05

SM

Stoian Minaiev in Qt
Например в арче с  установкой qt creator ставятся все примеры qt
источник

VS

Vladimir Suisei in Qt
Т.е. пока я не вернулся в eventloop, нулем он не станет?
источник

МВ

Макс Воробьев... in Qt
Vladimir Suisei
Поясните за QPointer.
Т.е. если я сделаю delete на объект, на который он указывает, то он станет null?
Но как инфа об удалении до него доходит?
источник

МВ

Макс Воробьев... in Qt
а вот тут хз. QPointer не юзал
источник

VS

Vladimir Suisei in Qt
Судя по тому что написано, возвращаться в луп не обязательно
источник

RG

Renat Garaev in Qt
Джон, а ты знаешь, чем помочь William ? Почему тогда не помогает с вопросом, William для John ?
источник

M

Mr.Mait in Qt
я тут смотрю исходники Qt QWeakPointer https://code.woboq.org/qt5/qtbase/src/corelib/tools/qsharedpointer_impl.h.html#_ZNK12QWeakPointer6isNullEv

И вижу такую строку
return d == nullptr || d->strongref.loadRelaxed() == 0 || value == nullptr;
Это не UB? Просто в условиях стоит ИЛИ, тогда получается что это не ленивые вычисления.
Если d будет nullptr, то получится, что d->strongref.loadRelaxed() крашнится SIGSEGV ?
источник

GS

Georgy Shepelev in Qt
это как раз и есть ленивые вычисления
источник

M

Mr.Mait in Qt
Georgy Shepelev
это как раз и есть ленивые вычисления
Ленивые вычисления разве не при && (И) ?
источник

GS

Georgy Shepelev in Qt
и при И тоже
источник

AS

Anatoly Shirokov in Qt
Mr.Mait
я тут смотрю исходники Qt QWeakPointer https://code.woboq.org/qt5/qtbase/src/corelib/tools/qsharedpointer_impl.h.html#_ZNK12QWeakPointer6isNullEv

И вижу такую строку
return d == nullptr || d->strongref.loadRelaxed() == 0 || value == nullptr;
Это не UB? Просто в условиях стоит ИЛИ, тогда получается что это не ленивые вычисления.
Если d будет nullptr, то получится, что d->strongref.loadRelaxed() крашнится SIGSEGV ?
порядок вычислений строго определен для встроенных && и || слева на право, если вычисленное значение достаточно для определения результата остальные вычисления не производятся
источник

M

Mr.Mait in Qt
Georgy Shepelev
и при И тоже
Просто когда или, все условие будет выполняться. Вот пример https://onlinegdb.com/r1p1bhPnI
источник

GS

Georgy Shepelev in Qt
нет, не будет
источник

GS

Georgy Shepelev in Qt
const bool v = exprA || (/* ... */);

если exprA вычисляется в истину, всё, что в скобках не вычисляется
источник

AS

Anatoly Shirokov in Qt
Mr.Mait
я тут смотрю исходники Qt QWeakPointer https://code.woboq.org/qt5/qtbase/src/corelib/tools/qsharedpointer_impl.h.html#_ZNK12QWeakPointer6isNullEv

И вижу такую строку
return d == nullptr || d->strongref.loadRelaxed() == 0 || value == nullptr;
Это не UB? Просто в условиях стоит ИЛИ, тогда получается что это не ленивые вычисления.
Если d будет nullptr, то получится, что d->strongref.loadRelaxed() крашнится SIGSEGV ?
вообще, это черепаха, на которой мир держится
источник

AS

Anatoly Shirokov in Qt
а ты УБ
источник

GS

Georgy Shepelev in Qt
и наоборот
const bool v = exprA && (/* ... */);

если exprA вычисляется в ЛОЖЬ, то скобки также не вычисляются
источник

M

Mr.Mait in Qt
А, извините, не прав был. Я думал что ленивые всегда только при && , т.к. если что то ложное, то все условие нет смысла проверять, а если или, то надо все проверить чтобы знать что хоть где-то есть true
источник

M

Mr.Mait in Qt
Да попутал, я понял все. Заработался
источник

AU

Abu Umar in Qt
Подскажите пожалуйста почему может падать пример https://doc.qt.io/qt-5/qml-qtcharts-chartview.html#details получаю SIGSEGV
В про файле QT += charts qml quick
qt 5.15.0
источник