In your case the 'temp' object will be deleted upon quitting function
foo(), so the signalTriggered() is never emitted. In previous version, it
would have been living longer because of memory leak you mentioned.

On Fri, Jun 12, 2015 at 4:52 PM, Berkay Elbir <berkayel...@gmail.com> wrote:

>
> Hello all;
>
> We recently joined a new project, which is full with idiom like: ,
>
> void foo(){
>     Widget* temp = new Widget;
>     connect(temp, &Widget::signalTriggerred,[this, temp ]()
>     {
>          do cool staff...
>     }}
>
> As you can see no delete nothing, I am afraid even user class "Widget" is
> inherited QObject, this is still a leak. Does QT do something fancy to
> prevent leek in case above?
>
> What I am planning to do:
>
> void foo {
>      std::shared_ptr<Widget > temp( new Widget () );
>      connect(temp.get(), &Widget::signalTriggerred,[this, temp] ()
>      {
>           do even cooler things...
>      }}
>
> Is there a problem with my apporach? (For example I didn't want to use
> .get() but compiler errors forced me to use it).
>
> Thanks in advance,
>
> BE
>
>
>
>
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
>
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to