From 63a118441a80078ebfeabf509c342bc0480a50b2 Mon Sep 17 00:00:00 2001 From: Sergei Date: Mon, 13 May 2024 19:41:26 +0300 Subject: [PATCH] Eliminate `cetl/pf17/attribute.hpp` (issue #114) (#122) --- cetlvast/include/cetlvast/smf_policies.hpp | 2 +- include/cetl/cetl.hpp | 15 +++++++++++++ include/cetl/pf17/attribute.hpp | 26 ---------------------- include/cetl/pf17/optional.hpp | 2 +- include/cetl/pf17/variant.hpp | 2 +- include/cetl/rtti.hpp | 4 +++- 6 files changed, 21 insertions(+), 30 deletions(-) delete mode 100644 include/cetl/pf17/attribute.hpp diff --git a/cetlvast/include/cetlvast/smf_policies.hpp b/cetlvast/include/cetlvast/smf_policies.hpp index bc470b8e..c74389b0 100644 --- a/cetlvast/include/cetlvast/smf_policies.hpp +++ b/cetlvast/include/cetlvast/smf_policies.hpp @@ -10,7 +10,7 @@ #ifndef CETLVAST_SMF_POLICIES_HPP_INCLUDED #define CETLVAST_SMF_POLICIES_HPP_INCLUDED -#include +#include #include namespace cetlvast diff --git a/include/cetl/cetl.hpp b/include/cetl/cetl.hpp index 7a5bee7c..0f4bf46d 100644 --- a/include/cetl/cetl.hpp +++ b/include/cetl/cetl.hpp @@ -195,6 +195,21 @@ static_assert((__cplusplus == CETL_CPP_STANDARD_14 || __cplusplus == CETL_CPP_ST __cplusplus >= CETL_CPP_STANDARD_20), "Unknown __cplusplus value found?"); +/// CETL_NODISCARD +#ifndef CETL_NODISCARD +# if (__cplusplus >= CETL_CPP_STANDARD_17) || defined(CETL_DOXYGEN) +/// A compatibility macros that expands to \c [[nodiscard]] if C++17 or later is used, otherwise it expands to +/// a compiler-specific alternative if one is known, otherwise it expands to nothing. +# define CETL_NODISCARD [[nodiscard]] +# else +# if defined(__GNUC__) || defined(__clang__) +# define CETL_NODISCARD __attribute__((warn_unused_result)) +# else +# define CETL_NODISCARD +# endif +# endif +#endif + /// @namespace cetl This namespace contains types specific to CETL and nested namespaces that contain types adhering /// to target C++ specifications. /// @namespace cetl::pmr CETL extensions to the standard Polymorphic Memory Resource (PMR) namespace, `std::pmr`. diff --git a/include/cetl/pf17/attribute.hpp b/include/cetl/pf17/attribute.hpp deleted file mode 100644 index 7e37c6f5..00000000 --- a/include/cetl/pf17/attribute.hpp +++ /dev/null @@ -1,26 +0,0 @@ -/// @file -/// Attribute polyfills for C++17. -/// @copyright -/// Copyright (C) OpenCyphal Development Team -/// Copyright Amazon.com Inc. or its affiliates. -/// SPDX-License-Identifier: MIT - -#ifndef CETL_PF17_ATTRIBUTE_HPP_INCLUDED -#define CETL_PF17_ATTRIBUTE_HPP_INCLUDED - -/// CETL_NODISCARD -#ifndef CETL_NODISCARD -# if (__cplusplus >= 201703L) || defined(CETL_DOXYGEN) -/// A compatibility macros that expands to \c [[nodiscard]] if C++17 or later is used, otherwise it expands to -/// a compiler-specific alternative if one is known, otherwise it expands to nothing. -# define CETL_NODISCARD [[nodiscard]] -# else -# if defined(__GNUC__) || defined(__clang__) -# define CETL_NODISCARD __attribute__((warn_unused_result)) -# else -# define CETL_NODISCARD -# endif -# endif -#endif - -#endif // CETL_PF17_ATTRIBUTE_HPP_INCLUDED diff --git a/include/cetl/pf17/optional.hpp b/include/cetl/pf17/optional.hpp index 272f6fb4..19b2e946 100644 --- a/include/cetl/pf17/optional.hpp +++ b/include/cetl/pf17/optional.hpp @@ -8,9 +8,9 @@ #ifndef CETL_PF17_OPTIONAL_HPP_INCLUDED #define CETL_PF17_OPTIONAL_HPP_INCLUDED +#include #include #include -#include #include #include diff --git a/include/cetl/pf17/variant.hpp b/include/cetl/pf17/variant.hpp index 2bc59cc2..b485be0f 100644 --- a/include/cetl/pf17/variant.hpp +++ b/include/cetl/pf17/variant.hpp @@ -9,9 +9,9 @@ #ifndef CETL_PF17_VARIANT_HPP_INCLUDED #define CETL_PF17_VARIANT_HPP_INCLUDED +#include #include #include -#include #include #include diff --git a/include/cetl/rtti.hpp b/include/cetl/rtti.hpp index f3ec207c..9a355783 100644 --- a/include/cetl/rtti.hpp +++ b/include/cetl/rtti.hpp @@ -12,7 +12,9 @@ #ifndef CETL_RTTI_HPP_INCLUDED #define CETL_RTTI_HPP_INCLUDED -#include +#ifndef CETL_H_ERASE +# include "cetl/cetl.hpp" +#endif #include #include