pocoproject / poco

The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.
https://pocoproject.org
Other
8.33k stars 2.15k forks source link

Build error with GCC-15 (class Poco::PriorityDelegate<TObj, void, true>’ has no member named ‘_pTarget’) #4695

Open stkw0 opened 2 weeks ago

stkw0 commented 2 weeks ago

Describe the bug With GCC-15 Poco fails to build.

To Reproduce Install GCC-15 pre-release or compile the latest GCC-15 from git and build Poco

Expected behavior It builds correctly

Logs

/var/tmp/portage/dev-libs/poco-1.13.3/work/poco-poco-1.13.3-release/Foundation/include/Poco/PriorityDelegate.h: In member function ‘Poco::PriorityDelegate<TObj, void, true>& Poco::PriorityDelegate<TObj, void, true>::operator=(const Poco::PriorityDelegate<TObj, void, true>&)’:
/var/tmp/portage/dev-libs/poco-1.13.3/work/poco-poco-1.13.3-release/Foundation/include/Poco/PriorityDelegate.h:203:31: error: ‘class Poco::PriorityDelegate<TObj, void, true>’ has no member named ‘_pTarget’ [-Wtemplate-body]
  203 |                         this->_pTarget        = delegate._pTarget;
      |                               ^~~~~~~~
/var/tmp/portage/dev-libs/poco-1.13.3/work/poco-poco-1.13.3-release/Foundation/include/Poco/PriorityDelegate.h:203:58: error: ‘const class Poco::PriorityDelegate<TObj, void, true>’ has no member named ‘_pTarget’ [-Wtemplate-body]
  203 |                         this->_pTarget        = delegate._pTarget;
      |                                                          ^~~~~~~~
/var/tmp/portage/dev-libs/poco-1.13.3/work/poco-poco-1.13.3-release/Foundation/include/Poco/PriorityDelegate.h: In member function ‘Poco::PriorityDelegate<TObj, void, false>& Poco::PriorityDelegate<TObj, void, false>::operator=(const Poco::PriorityDelegate<TObj, void, false>&)’:
/var/tmp/portage/dev-libs/poco-1.13.3/work/poco-poco-1.13.3-release/Foundation/include/Poco/PriorityDelegate.h:277:31: error: ‘class Poco::PriorityDelegate<TObj, void, false>’ has no member named ‘_pTarget’ [-Wtemplate-body]
  277 |                         this->_pTarget        = delegate._pTarget;
      |                               ^~~~~~~~
/var/tmp/portage/dev-libs/poco-1.13.3/work/poco-poco-1.13.3-release/Foundation/include/Poco/PriorityDelegate.h:277:58: error: ‘const class Poco::PriorityDelegate<TObj, void, false>’ has no member named ‘_pTarget’ [-Wtemplate-body]
  277 |                         this->_pTarget        = delegate._pTarget;
      |                                                          ^~~~~~~

Screenshots NA

Please add relevant environment information: Linux 6.10.9 Poco 1.13.3

Additional context

matejk commented 1 week ago

I might have missed something, but I am not sure why it works on other compilers since the member is obviously missing.