[Development] Go's "defer" statement for C++/Qt

2019-03-07 Thread Volker Hilsheimer
Ahoy, In what little development I’ve done in golang, I appreciated the “defer” statement as a means to write cleaner code. Basically, defer schedules a statement for execution when the stack unwinds. https://tour.golang.org/flowcontrol/12 We have several specialized helper classes in Qt for

Re: [Development] Go's "defer" statement for C++/Qt

2019-03-07 Thread Jesus Fernandez
std::async(std::launch::deferred, ...); ? Best regards, Jesús Original message From: Tor Arne Vestbø Date: 07/03/2019 18:11 (GMT+01:00) To: Volker Hilsheimer Cc: Qt development mailing list Subject: Re: [Development] Go's "defer" statement for C++/Qt

Re: [Development] Go's "defer" statement for C++/Qt

2019-03-07 Thread Alexander Akulich
Hi Volker, I have no idea about Go, but deferred signal emission is somewhat useful in async programming (at least in my practice). In that case, there is a need to 'defer' execution to continue after the control is returned (usually in EventLoop via QMetaObject::invokeMethod(...,

Re: [Development] Go's "defer" statement for C++/Qt

2019-03-07 Thread Tor Arne Vestbø
https://doc.qt.io/qt-5/qscopeguard.html  Tor Arne > On 7 Mar 2019, at 18:01, Volker Hilsheimer wrote: > > Ahoy, > > In what little development I’ve done in golang, I appreciated the “defer” > statement as a means to write cleaner code. Basically, defer schedules a > statement for

Re: [Development] Go's "defer" statement for C++/Qt

2019-03-07 Thread Volker Hilsheimer
Hey Alexander, deferred signal emission (or rather, deferred slot invocation) is a different topic. Wouldn't work well in my example, for the lack of an event loop. And object lifetime management would either way be a mess. Suggest you check the link to the explanation of go that I included 

Re: [Development] Go's "defer" statement for C++/Qt

2019-03-07 Thread Julien Cugnière
Le jeu. 7 mars 2019 à 18:09, Tor Arne Vestbø a écrit : > > https://doc.qt.io/qt-5/qscopeguard.html > Nice ! And apparently there is also https://doc.qt.io/qt-5/qscopedvaluerollback.html, which seems to be a public and templatized version of QBoolBlocker. > Tor Arne > > > On 7 Mar 2019, at

Re: [Development] Go's "defer" statement for C++/Qt

2019-03-07 Thread NIkolai Marchenko
oh... it's already in qt. I've been doing it with my own class all this time. On Thu, Mar 7, 2019 at 8:10 PM Tor Arne Vestbø wrote: > https://doc.qt.io/qt-5/qscopeguard.html  > > Tor Arne > > > On 7 Mar 2019, at 18:01, Volker Hilsheimer > wrote: > > > > Ahoy, > > > > In what little

Re: [Development] Go's "defer" statement for C++/Qt

2019-03-07 Thread Jason H
The verbiage in the example is wrong: code_that_might_through_exceptions(); should be: code_that_might_throw_exceptions(); Took me a moment to figure out just what it meant. > Sent: Thursday, March 07, 2019 at 12:09 PM > From: "Tor Arne Vestbø" > To: "Volker Hilsheimer" > Cc: "Qt

Re: [Development] Go's "defer" statement for C++/Qt

2019-03-07 Thread Timur Pocheptsov
Tor Arne +2! :D From: Development [development-boun...@qt-project.org] on behalf of Jason H [jh...@gmx.com] Sent: Thursday, March 7, 2019 11:59 PM To: Tor Arne Vestbø Cc: Qt development mailing list Subject: Re: [Development] Go's "defer" statement for

Re: [Development] Go's "defer" statement for C++/Qt

2019-03-07 Thread Andy Shaw
I took the liberty of fixing this as I found something else in the doc that was wrong too so figured it was quicker to go and do it instead of mentioning it ( https://codereview.qt-project.org/255289 to avoid any duplicates of people doing it already. Andy -Opprinnelig melding- Fra: