[PATCH v1] apps: cam: Fix C++20 deprecation warning

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri May 3 19:39:46 CEST 2024


On Fri, May 03, 2024 at 05:25:17PM +0000, Barnabás Pőcze wrote:
> Hi
> 
> 
> 2024. május 3., péntek 5:12 keltezéssel, Laurent Pinchart <laurent.pinchart at ideasonboard.com> írta:
> 
> > On Fri, May 03, 2024 at 02:58:45AM +0300, Laurent Pinchart wrote:
> > > On Thu, May 02, 2024 at 11:40:42PM +0000, Barnabás Pőcze wrote:
> > > > 2024. május 3., péntek 1:13 keltezéssel, Laurent Pinchart írta:
> > > > > On Tue, Apr 30, 2024 at 07:26:21PM +0000, Barnabás Pőcze wrote:
> > > > > > C++20 deprecated implicit capture of `this` via `[=]`.
> > > > > > Fix that by explicitly capturing the necessary variables.
> > > > > >
> > > > > > Signed-off-by: Barnabás Pőcze <pobrn at protonmail.com>
> > > > >
> > > > > Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > > > >
> > > > > It would be nice if there was a way to enable this warning even with
> > > > > C++17, but it's covered by -Wdeprecated :-S
> > > >
> > > > In the CI one could do builds with `meson setup ... -D cpp_std=c++20`.
> > >
> > > That's a good idea.
> > 
> > The result is surprising:
> > 
> > https://gitlab.freedesktop.org/pinchartl/libcamera/-/jobs/58304138
> > 
> > I don't think I'll have time to investigate this very soon.
> 
> I have run into this as well, but it has "disappeared" after some time. Now I have
> taken a closer look. The issue appears to be that the "span" test creating a test executable
> named `span` in the `test` directory coupled with the `-I<build dir>/test` argument
> added by meson leads to the executable being included.

Ahhhhh... Thanks for investigating. This is the first time I find a real
drawback of the extension-less headers for C++ :-(

I'll try to post a fix.

>   $ g++ -Isubprojects/libcamera/test/camera-sensor.p -Isubprojects/libcamera/test [...] -c ../subprojects/libcamera/test/camera-sensor.cpp
>   In file included from /usr/include/c++/13.2.1/format:44,
>                    from /usr/include/c++/13.2.1/bits/chrono_io.h:39,
>                    from /usr/include/c++/13.2.1/chrono:3370,
>                    from ../subprojects/libcamera/include/libcamera/base/utils.h:11,
>                    from ../subprojects/libcamera/test/camera-sensor.cpp:13:
>   subprojects/libcamera/test/span:1:1: error: stray ‘\177’ in program
>       1 | <U+007F>ELF [...]
> 
> > [...]

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list