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

NIkolai Marchenko enmarantispam at gmail.com
Thu Mar 7 18:11:51 CET 2019


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ø <Tor.arne.Vestbo at qt.io>
wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20190307/20ef6346/attachment.html>


More information about the Development mailing list