[libcamera-devel] [RFC PATCH 0/6] Remove using namespace in header files

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Oct 20 04:39:10 CEST 2021


Hi Hiro,

On Wed, Oct 20, 2021 at 11:26:26AM +0900, Hirokazu Honda wrote:
> Hi Laurent,
> 
> Would you merge this patch series?

It has been merged already :-)

> On Tue, Oct 5, 2021 at 6:51 PM Laurent Pinchart wrote:
> > On Tue, Oct 05, 2021 at 04:31:08PM +0900, Hirokazu Honda wrote:
> > > According to Google C++ style guide, using-directives (i.e.
> > > "using namespace foo") should not be used. However, libcamera has
> > > been using the scheme in many files. Removing using-directives
> > > entirely in the code definitely needs the dicussion.
> >
> > Indeed, that would need discussions :-) Part of the discussion would
> > likely touch the namespace name, libcamera is fairly long.
> >
> > > This patch series resolves the porblem of using using-directives
> > > in header file, which I expect I can handily get the agreement
> > > from developers. Using-directives in a header file is propagated
> > > to all the files including the header file. This pollutes
> > > namespace severely.
> >
> > Overall it looks fine to me, although I'm not sure it's such a big deal.
> > Yes, using directives are propagated, which is a bad idea in general,
> > but the header files below are all internal the the component they
> > relate to. The risk of namespace polution is thus more theoretical than
> > practical.
> >
> > This being said, we're already using this policy in the HAL headers, and
> > I don't object extending it to all headers. I'll side with the majority.
> >
> > > [1] https://google.github.io/styleguide/cppguide.html#Namespaces
> > >
> > > Hirokazu Honda (6):
> > >   ipa: raspberrypi: agc: Remove using namespace in agc.hpp
> > >   cam: Remove using namespace in stream_options.h
> > >   qcam: Remove using namespace in header files
> > >   v4l2: Remove using namespace in header files
> > >   lc-compliance: Remove using namespace in header files
> > >   test: Remove using namespace in header files
> > >
> > >  src/cam/stream_options.h                      |  8 ++--
> > >  src/ipa/raspberrypi/controller/rpi/agc.cpp    |  7 ++++
> > >  src/ipa/raspberrypi/controller/rpi/agc.hpp    |  6 +--
> > >  src/lc-compliance/environment.cpp             |  2 +-
> > >  src/lc-compliance/environment.h               |  8 ++--
> > >  src/qcam/dng_writer.h                         | 10 ++---
> > >  src/qcam/main.cpp                             |  2 +-
> > >  src/qcam/main_window.h                        | 40 +++++++++----------
> > >  src/v4l2/v4l2_camera.h                        | 37 +++++++++--------
> > >  src/v4l2/v4l2_camera_proxy.h                  | 15 ++++---
> > >  src/v4l2/v4l2_compat_manager.h                |  4 +-
> > >  test/camera/camera_reconfigure.cpp            |  1 +
> > >  test/camera/capture.cpp                       |  1 +
> > >  test/camera/configuration_default.cpp         |  1 +
> > >  test/camera/configuration_set.cpp             |  1 +
> > >  test/camera/statemachine.cpp                  |  1 +
> > >  test/gstreamer/gstreamer_test.h               |  2 -
> > >  test/libtest/buffer_source.cpp                |  2 +
> > >  test/libtest/buffer_source.h                  | 10 ++---
> > >  test/libtest/camera_test.h                    |  6 +--
> > >  test/mapped-buffer.cpp                        |  1 +
> > >  test/media_device/media_device_test.h         |  6 +--
> > >  test/serialization/serialization_test.h       | 10 ++---
> > >  test/v4l2_subdevice/v4l2_subdevice_test.h     |  8 ++--
> > >  test/v4l2_videodevice/buffer_sharing.cpp      |  2 +
> > >  test/v4l2_videodevice/capture_async.cpp       |  2 +
> > >  test/v4l2_videodevice/v4l2_videodevice_test.h | 14 +++----
> > >  27 files changed, 100 insertions(+), 107 deletions(-)

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list