Andreas Tille <andr...@an3as.eu> writes: > /build/libroadrunner-1.5.4/source/rrLogger.cpp: In function > ‘Poco::SplitterChannel* rr::getSplitterChannel()’: > /build/libroadrunner-1.5.4/source/rrLogger.cpp:353:29: error: cannot > ‘dynamic_cast’ ‘Poco::Logger::getChannel() const()’ (of type ‘using Ptr = > class Poco::AutoPtr<Poco::Channel>’ {aka ‘class > Poco::AutoPtr<Poco::Channel>’}) to type ‘class Poco::FormattingChannel*’ > (source is not a pointer) > 353 | FormattingChannel *fc = > dynamic_cast<FormattingChannel*>(pocoLogger->getChannel()); > | > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > /build/libroadrunner-1.5.4/source/rrLogger.cpp:355:27: error: cannot > ‘dynamic_cast’ ‘Poco::FormattingChannel::getChannel() const()’ (of type > ‘using Ptr = class Poco::AutoPtr<Poco:: Channel>’ {aka ‘class > Poco::AutoPtr<Poco::Channel>’}) to type ‘class Poco::SplitterChannel*’ > (source is not a pointer) > 355 | SplitterChannel *sc = > dynamic_cast<SplitterChannel*>(fc->getChannel()); > | > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > /build/libroadrunner-1.5.4/source/rrLogger.cpp: In function > ‘Poco::PatternFormatter* rr::getPatternFormatter()’: > /build/libroadrunner-1.5.4/source/rrLogger.cpp:363:29: error: cannot > ‘dynamic_cast’ ‘Poco::Logger::getChannel() const()’ (of type ‘using Ptr = > class Poco::AutoPtr<Poco::Channel>’ {aka ‘class > Poco::AutoPtr<Poco::Channel>’}) to type ‘class Poco::FormattingChannel*’ > (source is not a pointer) > 363 | FormattingChannel *fc = > dynamic_cast<FormattingChannel*>(pocoLogger->getChannel()); > | > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > /build/libroadrunner-1.5.4/source/rrLogger.cpp:365:28: error: cannot > ‘dynamic_cast’ ‘Poco::FormattingChannel::getFormatter() const()’ (of type > ‘using Ptr = class Poco::AutoPtr<Poco:: Formatter>’ {aka ‘class > Poco::AutoPtr<Poco::Formatter>’}) to type ‘class Poco::PatternFormatter*’ > (source is not a pointer) > 365 | PatternFormatter *pf = > dynamic_cast<PatternFormatter*>(fc->getFormatter()); > | > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
It looks like appending .get() to these getChannel() and getFormatter() calls, as in SplitterChannel *sc = dynamic_cast<SplitterChannel*>(fc->getChannel().get()); should take care of the immediate problem. (I'm not specifically familiar with either poco or roadrunner, but this is a common C++ pattern.) -- Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org) http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?a...@monk.mit.edu