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

Andy Shaw andy.shaw at qt.io
Fri Mar 8 07:29:21 CET 2019


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: Development <development-bounces at qt-project.org> på vegne av Timur Pocheptsov <timur.pocheptsov at qt.io>
Dato: fredag 8. mars 2019 06:49
Til: Jason H <jhihn at gmx.com>, Tor Arne Vestbø <Tor.arne.Vestbo at qt.io>
Kopi: "development at qt-project.org" <development at qt-project.org>
Emne: Re: [Development] Go's "defer" statement for C++/Qt

    Tor Arne +2! :D
    
    
    ________________________________________
    From: Development [development-bounces at qt-project.org] on behalf of Jason H [jhihn at 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 C++/Qt
    
    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ø" <Tor.arne.Vestbo at qt.io>
    > To: "Volker Hilsheimer" <volker.hilsheimer at qt.io>
    > Cc: "Qt development mailing list" <development at qt-project.org>
    > Subject: Re: [Development] Go's "defer" statement for C++/Qt
    >
    > https://doc.qt.io/qt-5/qscopeguard.html 😊
    >
    > Tor Arne
    >
    > > On 7 Mar 2019, at 18:01, Volker Hilsheimer <volker.hilsheimer at qt.io> 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 execution when the stack unwinds.
    > >
    > > https://tour.golang.org/flowcontrol/12
    > >
    > > We have several specialized helper classes in Qt for similar purposes, f.ex QMutexLocker and friends, or the internal QBoolBlocker [1]. Seeing the various specialized classes we have, I thought that something generic in Qt could be useful to have (although our specialised classes provide some additional convenience and/or logic).
    > >
    > > So, I pushed a few lines code to
    > >
    > > https://git.qt.io/vohilshe/qt_defer
    > >
    > > Would like to hear what you think.
    > >
    > > Perhaps someone can find ways to make this more elegant without introducing tons of preprocessor/macro shenanigans, or perhaps even without depending on C++17's implicit template argument deduction (without enabling C++17 in the config this doesn't build for me, even though I don’t use auto in the template paramter list).
    > >
    > >
    > > Cheers,
    > > Volker
    > >
    > >
    > > [1] which was requested to be made public in https://bugreports.qt.io/browse/QTBUG-38575
    > >
    > >
    > > _______________________________________________
    > > Development mailing list
    > > Development at qt-project.org
    > > https://lists.qt-project.org/listinfo/development
    >
    > _______________________________________________
    > Development mailing list
    > Development at qt-project.org
    > https://lists.qt-project.org/listinfo/development
    >
    _______________________________________________
    Development mailing list
    Development at qt-project.org
    https://lists.qt-project.org/listinfo/development
    _______________________________________________
    Development mailing list
    Development at qt-project.org
    https://lists.qt-project.org/listinfo/development
    



More information about the Development mailing list