{"id":9366,"url":"https://patchwork.libcamera.org/api/1.1/covers/9366/?format=json","web_url":"https://patchwork.libcamera.org/cover/9366/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200822200037.20892-1-laurent.pinchart@ideasonboard.com>","date":"2020-08-22T20:00:32","name":"[libcamera-devel,0/5] libcamera: Switch to C++17","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/1.1/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/9366/mbox/","series":[{"id":1235,"url":"https://patchwork.libcamera.org/api/1.1/series/1235/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1235","date":"2020-08-22T20:00:32","name":"libcamera: Switch to C++17","version":1,"mbox":"https://patchwork.libcamera.org/series/1235/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/9366/comments/","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id BA9AABD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 22 Aug 2020 20:01:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EC93C6271B;\n\tSat, 22 Aug 2020 22:01:01 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AB2CD61EA0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 22 Aug 2020 22:01:00 +0200 (CEST)","from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 42E3129E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 22 Aug 2020 22:01:00 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"uL5ydCAh\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1598126460;\n\tbh=pPHFjf9g/tIc8T1RrucFUbCDGHoXsWg6mnGp6CXiBTA=;\n\th=From:To:Subject:Date:From;\n\tb=uL5ydCAh11J0gGeSwRKX0SzbjEX3pHgzRLoc323XZz965kGDmOQQWM/+kL/3rmtk4\n\t8BiLi2Vw1/g/LMW3/G3BM2ZxWD9Jh55M9gVYcLpfjIfSev6xBSk3+nv+IkNHBfhe7A\n\tZc6QcVZXB0qGA7Oq/OcZP2MPwkAkqXdZaQDVXZpU=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Sat, 22 Aug 2020 23:00:32 +0300","Message-Id":"<20200822200037.20892-1-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.27.0","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH 0/5] libcamera: Switch to C++17","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hello,\n\nIn response to a popular request, this patch series moves libcamera from\nC++14 to C++17. This allows new features of the language (such as\n[[maybe_unused]]) and the standard library (such as std::clamp()). gcc 5\nand gcc 6 can't be supported anymore, which isn't considered as an issue\ngiven that all major distributions that we're targetting ship a recent\nenough compiler.\n\nPatch 1/5 switches to C++17. If you're using an existing build\ndirectory, you will need to set the cpp_std option with\n\n\tmeson configure -Dcpp_std=c++17\n\nPatches 2/5 and 3/5 then update the code base to remove workarounds\nneeded by C++14 and older compilers. Patch 4/5 is a new attempt to drop\n-Wno-unused-parameter, with the standard [[maybe_unused]] attribute this\ntime instead of commenting out the parameter name to the function. Patch\n5/5 extends the usage of [[maybe_unused]] to remove void casts.\n\nLaurent Pinchart (5):\n  meson: Switch to C++17\n  libcamera: Replace utils::clamp() with std::clamp()\n  libcamera: Drop explicit construction of std::queue\n  meson: Remove -Wno-unused-parameter\n  ipa: raspberrypi: Replace void cast with [[maybe_unused]]\n\n include/libcamera/bound_method.h              |  2 +-\n include/libcamera/internal/utils.h            |  7 ------\n include/libcamera/signal.h                    |  2 +-\n include/libcamera/span.h                      |  4 ++--\n meson.build                                   |  3 +--\n src/android/camera3_hal.cpp                   | 11 +++++----\n src/android/camera_device.cpp                 |  5 ++--\n src/android/camera_ops.cpp                    |  5 ++--\n src/cam/main.cpp                              |  2 +-\n src/gstreamer/gstlibcamerapool.cpp            |  2 +-\n src/gstreamer/gstlibcameraprovider.cpp        |  2 +-\n src/gstreamer/gstlibcamerasrc.cpp             |  7 ++++--\n src/ipa/raspberrypi/controller/algorithm.cpp  | 16 +++++--------\n src/ipa/raspberrypi/controller/rpi/agc.cpp    |  3 ++-\n src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  8 +++----\n .../raspberrypi/controller/rpi/contrast.cpp   |  4 ++--\n src/ipa/raspberrypi/controller/rpi/noise.cpp  |  5 ++--\n .../raspberrypi/controller/rpi/sharpen.cpp    |  5 ++--\n src/ipa/raspberrypi/raspberrypi.cpp           |  2 +-\n src/ipa/rkisp1/rkisp1.cpp                     | 24 ++++++++++---------\n src/ipa/vimc/vimc.cpp                         | 16 ++++++-------\n src/libcamera/device_enumerator_udev.cpp      |  2 +-\n src/libcamera/ipc_unixsocket.cpp              |  2 +-\n src/libcamera/pipeline/ipu3/cio2.cpp          |  4 +---\n src/libcamera/pipeline/ipu3/imgu.cpp          |  3 ++-\n src/libcamera/pipeline/ipu3/ipu3.cpp          | 12 +++++-----\n .../pipeline/raspberrypi/raspberrypi.cpp      | 10 ++++----\n src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  2 +-\n src/libcamera/pipeline/rkisp1/timeline.cpp    |  2 +-\n src/libcamera/pipeline/vimc/vimc.cpp          |  2 +-\n src/libcamera/process.cpp                     |  2 +-\n src/libcamera/proxy/ipa_proxy_linux.cpp       | 23 ++++++++++--------\n src/libcamera/utils.cpp                       |  8 -------\n src/libcamera/v4l2_pixelformat.cpp            |  2 +-\n src/libcamera/v4l2_videodevice.cpp            |  4 ++--\n src/qcam/dng_writer.cpp                       |  5 ++--\n src/qcam/main.cpp                             |  2 +-\n src/v4l2/v4l2_camera.cpp                      |  2 +-\n test/camera/buffer_import.cpp                 |  3 ++-\n test/camera/capture.cpp                       |  3 ++-\n test/hotplug-cameras.cpp                      |  4 ++--\n test/ipa/ipa_wrappers_test.cpp                |  4 ++--\n test/libtest/test.h                           |  2 +-\n test/log/log_process.cpp                      |  3 ++-\n test/object-invoke.cpp                        |  2 +-\n test/process/process_test.cpp                 |  3 ++-\n test/timer-thread.cpp                         |  2 +-\n test/timer.cpp                                |  2 +-\n 48 files changed, 122 insertions(+), 128 deletions(-)"}