The [[nodiscard]] attribute has been added to C++17. It can thus be used inside libcamera, but would prevent applications compiled for C++14 to use libcamera if the attribute was used in public headers. To offer this feature when the application is compiled with a recent-enough C++ version, as well as for compiling libcamera itself, add a __nodiscard macro that expands as [[nodiscard]] when using C++17 or newer. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
17 lines
328 B
C++
17 lines
328 B
C++
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
/*
|
|
* Copyright (C) 2021, Google Inc.
|
|
*
|
|
* compiler.h - Compiler support
|
|
*/
|
|
#ifndef __LIBCAMERA_COMPILER_H__
|
|
#define __LIBCAMERA_COMPILER_H__
|
|
|
|
#if __cplusplus >= 201703L
|
|
#define __nodiscard [[nodiscard]]
|
|
#else
|
|
#define __nodiscard
|
|
#endif
|
|
|
|
#endif /* __LIBCAMERA_COMPILER_H__ */
|