From d811b9e4701bc42554f46e8bd8f1ed95fcfa184c Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Wed, 22 Jun 2022 14:54:30 +0200 Subject: [PATCH] Fix to compile under cpp23 again successfully --- CMakeLists.txt | 1 - src/espstrutils.cpp | 5 ++--- src/futurecpp.h | 30 ------------------------------ src/taskutils.cpp | 6 +++--- src/wrappers/websocket_client.h | 6 ++---- 5 files changed, 7 insertions(+), 41 deletions(-) delete mode 100644 src/futurecpp.h diff --git a/CMakeLists.txt b/CMakeLists.txt index b3547db..7af2acb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,6 @@ set(headers src/espcrc32builder.h src/esprandom.h src/espstrutils.h - src/futurecpp.h src/lockhelper.h src/lockingqueue.h src/recursivelockhelper.h diff --git a/src/espstrutils.cpp b/src/espstrutils.cpp index 370964b..0b96dd9 100644 --- a/src/espstrutils.cpp +++ b/src/espstrutils.cpp @@ -3,7 +3,9 @@ #include "sdkconfig.h" #define LOG_LOCAL_LEVEL CONFIG_ESPCPPUTILS_LOG_LOCAL_LEVEL +// system includes #include +#include // esp-idf includes #include @@ -11,9 +13,6 @@ // 3rdparty lib includes #include -// local includes -#include "futurecpp.h" - using namespace std::string_literals; namespace espcpputils { diff --git a/src/futurecpp.h b/src/futurecpp.h deleted file mode 100644 index b67578c..0000000 --- a/src/futurecpp.h +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once - -// system includes -#include -#include -#include - -// C++20 backports (until espressif finally updates their aged compiler suite) - -namespace std { -template -typename std::enable_if_t< - sizeof(To) == sizeof(From) && std::is_trivially_copyable_v && std::is_trivially_copyable_v, - To> -// constexpr support needs compiler magic -bit_cast(const From& src) noexcept -{ - static_assert(std::is_trivially_constructible_v, - "This implementation additionally requires destination type to be trivially constructible"); - - To dst; - std::memcpy(&dst, &src, sizeof(To)); - return dst; -} - -template {}>> -constexpr std::underlying_type_t to_underlying(EnumT e) noexcept { - return static_cast>(e); -} -} // namespace std diff --git a/src/taskutils.cpp b/src/taskutils.cpp index 70e8dc3..f4f0ae8 100644 --- a/src/taskutils.cpp +++ b/src/taskutils.cpp @@ -3,12 +3,12 @@ #include "sdkconfig.h" #define LOG_LOCAL_LEVEL CONFIG_ESPCPPUTILS_LOG_LOCAL_LEVEL +// system includes +#include + // esp-idf includes #include -// local includes -#include "futurecpp.h" - namespace espcpputils { namespace { constexpr const char * const TAG = "ESPCPPUTILS"; diff --git a/src/wrappers/websocket_client.h b/src/wrappers/websocket_client.h index d0ddca0..49582cd 100644 --- a/src/wrappers/websocket_client.h +++ b/src/wrappers/websocket_client.h @@ -3,17 +3,15 @@ // system includes #include #include +#include -// espressif includes +// esp-idf includes #include #include // 3rdparty lib includes #include -// local includes -#include "futurecpp.h" - namespace espcpputils { class websocket_client {