[Bug 276187] devel/cpprestsdk: json.h breaks with the FreeBSD std::unique_ptr
Date: Sun, 07 Jan 2024 21:26:44 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276187
Bug ID: 276187
Summary: devel/cpprestsdk: json.h breaks with the FreeBSD
std::unique_ptr
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: Individual Port(s)
Assignee: ports-bugs@FreeBSD.org
Reporter: sigsegv@radiotube.org
Created attachment 247517
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=247517&action=edit
Patch files to de-inline the failing constructor and destructor
A simple #include <cpprestsdk/json.h> fails with errors like this:
In file included from /usr/include/c++/v1/iostream:43:
In file included from /usr/include/c++/v1/ios:221:
In file included from /usr/include/c++/v1/__locale:18:
In file included from /usr/include/c++/v1/mutex:191:
In file included from /usr/include/c++/v1/__memory/shared_ptr.h:31:
/usr/include/c++/v1/__memory/unique_ptr.h:63:19: error: invalid application of
'sizeof' to an incomplete type 'web::json::details::_Value'
static_assert(sizeof(_Tp) >= 0, "cannot delete an incomplete type");
^~~~~~~~~~~
/usr/include/c++/v1/__memory/unique_ptr.h:297:7: note: in instantiation of
member function 'std::default_delete<web::json::details::_Value>::operator()'
requested here
__ptr_.second()(__tmp);
^
/usr/include/c++/v1/__memory/unique_ptr.h:263:75: note: in instantiation of
member function 'std::unique_ptr<web::json::details::_Value>::reset' requested
here
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX23 ~unique_ptr() {
reset(); }
^
/usr/local/include/cpprest/json.h:716:14: note: in instantiation of member
function 'std::unique_ptr<web::json::details::_Value>::~unique_ptr' requested
here
explicit value(std::unique_ptr<details::_Value> v) : m_value(std::move(v))
^
/usr/local/include/cpprest/json.h:35:7: note: forward declaration of
'web::json::details::_Value'
class _Value;
^
1 error generated.
Suggested patch included. De-inlining the constructor and destructor makes the
sizeof(_Value) available to std::unique_ptr.
--
You are receiving this mail because:
You are the assignee for the bug.