kumquat-buildroot/package/websocketpp/0001-fix_cpp20_build.patch
Michael Nosthoff 9ac1a76fcf package/websocketpp: fix build with C++20
websocketpp had some ill-formed usage of template parameters which was
finally removed in C++20. Hence build fails when building with C++20
support enabled.

The patch is already in the develop branch but no new release was
done.

There are no autobuilder failures because websocketpp is a header-only
library, and there are no packages in Buildroot that depned on
websocketpp.

A build issue was encountered when bumping an internal project to
C++20. This issue triggered quite some bug reports in the project [0]
and there are backports to other package managers like vcpkg [1] and
conan [2].

[0] https://github.com/zaphoyd/websocketpp/pull/1060
[1] https://github.com/microsoft/vcpkg/pull/23669
[2] https://github.com/conan-io/conan-center-index/pull/15295

Signed-off-by: Michael Nosthoff <buildroot@heine.tech>
[Thomas: extend commit log with details provided by Michael.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-11-04 14:41:19 +01:00

109 lines
4.1 KiB
Diff

From 3197a520eb4c1e4754860441918a5930160373eb Mon Sep 17 00:00:00 2001
From: Peter Thorson <git@zaphoyd.com>
Date: Tue, 29 Jun 2021 09:13:12 -0500
Subject: [PATCH] [core] Remove the use of simple template ids as they have
been removed in c++20.
https://timsong-cpp.github.io/cppwp/n4861/diff.cpp17.class#2 references #991
Signed-off-by: Michael Nosthoff <buildroot@heine.tech>
Upstream: https://github.com/zaphoyd/websocketpp/commit/3197a520eb4c1e4754860441918a5930160373eb
---
websocketpp/endpoint.hpp | 2 +-
websocketpp/logger/basic.hpp | 14 +++++++-------
websocketpp/roles/server_endpoint.hpp | 6 +++---
3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/websocketpp/endpoint.hpp b/websocketpp/endpoint.hpp
index 825eaa46d..10f525689 100644
--- a/websocketpp/endpoint.hpp
+++ b/websocketpp/endpoint.hpp
@@ -111,7 +111,7 @@ class endpoint : public config::transport_type, public config::endpoint_base {
/// Destructor
- ~endpoint<connection,config>() {}
+ ~endpoint() {}
#ifdef _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
// no copy constructor because endpoints are not copyable
diff --git a/websocketpp/logger/basic.hpp b/websocketpp/logger/basic.hpp
index 84514130e..4c9d83649 100644
--- a/websocketpp/logger/basic.hpp
+++ b/websocketpp/logger/basic.hpp
@@ -58,33 +58,33 @@ namespace log {
template <typename concurrency, typename names>
class basic {
public:
- basic<concurrency,names>(channel_type_hint::value h =
+ basic(channel_type_hint::value h =
channel_type_hint::access)
: m_static_channels(0xffffffff)
, m_dynamic_channels(0)
, m_out(h == channel_type_hint::error ? &std::cerr : &std::cout) {}
- basic<concurrency,names>(std::ostream * out)
+ basic(std::ostream * out)
: m_static_channels(0xffffffff)
, m_dynamic_channels(0)
, m_out(out) {}
- basic<concurrency,names>(level c, channel_type_hint::value h =
+ basic(level c, channel_type_hint::value h =
channel_type_hint::access)
: m_static_channels(c)
, m_dynamic_channels(0)
, m_out(h == channel_type_hint::error ? &std::cerr : &std::cout) {}
- basic<concurrency,names>(level c, std::ostream * out)
+ basic(level c, std::ostream * out)
: m_static_channels(c)
, m_dynamic_channels(0)
, m_out(out) {}
/// Destructor
- ~basic<concurrency,names>() {}
+ ~basic() {}
/// Copy constructor
- basic<concurrency,names>(basic<concurrency,names> const & other)
+ basic(basic<concurrency,names> const & other)
: m_static_channels(other.m_static_channels)
, m_dynamic_channels(other.m_dynamic_channels)
, m_out(other.m_out)
@@ -97,7 +97,7 @@ class basic {
#ifdef _WEBSOCKETPP_MOVE_SEMANTICS_
/// Move constructor
- basic<concurrency,names>(basic<concurrency,names> && other)
+ basic(basic<concurrency,names> && other)
: m_static_channels(other.m_static_channels)
, m_dynamic_channels(other.m_dynamic_channels)
, m_out(other.m_out)
diff --git a/websocketpp/roles/server_endpoint.hpp b/websocketpp/roles/server_endpoint.hpp
index 4a5865eff..04fee18f9 100644
--- a/websocketpp/roles/server_endpoint.hpp
+++ b/websocketpp/roles/server_endpoint.hpp
@@ -75,11 +75,11 @@ class server : public endpoint<connection<config>,config> {
}
/// Destructor
- ~server<config>() {}
+ ~server() {}
#ifdef _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
// no copy constructor because endpoints are not copyable
- server<config>(server<config> &) = delete;
+ server(server<config> &) = delete;
// no copy assignment operator because endpoints are not copyable
server<config> & operator=(server<config> const &) = delete;
@@ -87,7 +87,7 @@ class server : public endpoint<connection<config>,config> {
#ifdef _WEBSOCKETPP_MOVE_SEMANTICS_
/// Move constructor
- server<config>(server<config> && o) : endpoint<connection<config>,config>(std::move(o)) {}
+ server(server<config> && o) : endpoint<connection<config>,config>(std::move(o)) {}
#ifdef _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
// no move assignment operator because of const member variables