<div dir="ltr">Yes, I will try this and send a new version of the patch once confirmed.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Nov 19, 2023 at 6:07 PM Laurent Pinchart <<a href="mailto:laurent.pinchart@ideasonboard.com">laurent.pinchart@ideasonboard.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
On Tue, Nov 14, 2023 at 04:05:16PM +0000, Barnabás Pőcze wrote:<br>
> 2023. november 14., kedd 14:42 keltezéssel, Laurent Pinchart via libcamera-devel írta:<br>
> > On Tue, Nov 14, 2023 at 12:53:04PM +0200, Laurent Pinchart via libcamera-devel wrote:<br>
> > > Hi Brett,<br>
> > > <br>
> > > Thank you for your first libcamera patch :-)<br>
> > > <br>
> > > On Mon, Nov 13, 2023 at 09:52:44AM -0700, Brett Brotherton via libcamera-devel wrote:<br>
> > > <br>
> > > > fix -Wdeprecated-this-capture error when building with c++20 by<br>
> > > > explicity naming this in the capture<br>
> > > <br>
> > > Nitpicking, s/fix/Fix/ and s/capture$/capture./<br>
> > > <br>
> > > No need to resend the patch for this, I'll update the commit message<br>
> > > before pushing.<br>
> > > <br>
> > > Is this the only occurrence of implicit *this capture ? I'm happy we're<br>
> > > not doing that bad :-)<br>
> > > <br>
> > > > Signed-off-by: Brett Brotherton <a href="mailto:bbrotherton@google.com" target="_blank">bbrotherton@google.com</a><br>
> > > <br>
> > > Reviewed-by: Laurent Pinchart <a href="mailto:laurent.pinchart@ideasonboard.com" target="_blank">laurent.pinchart@ideasonboard.com</a><br>
> > > <br>
> > > I will run this through build testing and push the patch if no issues<br>
> > > are found.<br>
> > <br>
> > Unfortunately problems have been found :-(<br>
> > <br>
> > ../../src/libcamera/pipeline_handler.cpp:652:40: error: explicit capture of 'this' with a capture default of '=' is a C++20 extension [-Werror,-Wc++20-extensions]<br>
> > media->disconnected.connect(this, =, this { mediaDeviceDisconnected(media); });<br>
> > <br>
> > ^<br>
> <br>
> I imagine explicitly capturing everything needed should fix that.<br>
> <br>
> diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp<br>
> index 9c74c6cf..29e0c98a 100644<br>
> --- a/src/libcamera/pipeline_handler.cpp<br>
> +++ b/src/libcamera/pipeline_handler.cpp<br>
> @@ -649,7 +649,7 @@ void PipelineHandler::registerCamera(std::shared_ptr<Camera> camera)<br>
>   */<br>
>  void PipelineHandler::hotplugMediaDevice(MediaDevice *media)<br>
>  {<br>
> -       media->disconnected.connect(this, [=]() { mediaDeviceDisconnected(media); });<br>
> +       media->disconnected.connect(this, [this, media] { mediaDeviceDisconnected(media); });<br>
>  }<br>
>  <br>
>  /**<br>
<br>
This seems fine. Brett, could you please test this (both with C++20 and<br>
C++17) and send a new version of the patch ?<br>
<br>
> > > > ---<br>
> > > > src/libcamera/pipeline_handler.cpp | 2 +-<br>
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)<br>
> > > > <br>
> > > > diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp<br>
> > > > index 9c74c6cf..2220cb92 100644<br>
> > > > --- a/src/libcamera/pipeline_handler.cpp<br>
> > > > +++ b/src/libcamera/pipeline_handler.cpp<br>
> > > > @@ -649,7 +649,7 @@ void PipelineHandler::registerCamera(std::shared_ptr<Camera> camera)<br>
> > > > */<br>
> > > > void PipelineHandler::hotplugMediaDevice(MediaDevice *media)<br>
> > > > {<br>
> > > > - media->disconnected.connect(this, = { mediaDeviceDisconnected(media); });<br>
> > > > + media->disconnected.connect(this, =, this { mediaDeviceDisconnected(media); });<br>
> > > > }<br>
> > [...]<br>
<br>
-- <br>
Regards,<br>
<br>
Laurent Pinchart<br>
</blockquote></div>