Wandbox
SettingsLog
SettingsLog
Language
GitHubLogin
Ran/Viewed Log

Author

anonymous

almost 5 years ago

Language

C++

Compiler

clang HEAD 12.0.0 (https://github.com/llvm/llvm-project.git d37b5393e89128c51b02dafbd1da3fa525bf9881)

Options
Warnings
Boost 1.73.0
C++2b(GNU)
-pedantic-errors
Raw compiler options
-D_DEBUG

Author

anonymous

almost 5 years ago

message.hpp

$ clang++ prog.cc -Wall -Wextra -I/opt/wandbox/boost-1.73.0/clang-head/include -std=gnu++2b -pedantic-errors -D_DEBUG
prog.cc:18:14: warning: 'my::Test::onMessage' hides overloaded virtual function [-Woverloaded-virtual]
        void onMessage(const B &) override { ::std::cout << "intercepted: B\n"; }
             ^
./message.hpp:45:26: note: hidden overloaded virtual function 'msg::detail::HandlerImpl<my::A, my::B, my::C>::onMessage' declared here: type mismatch at 1st parameter ('const msg::detail::HandlerImpl<my::A, my::B, my::C>::MessageType &' (aka 'const my::A &') vs 'const my::B &')
            virtual void onMessage(const MessageType &) { UNHANDLED_MSG_WARN(MessageType) }
                         ^
prog.cc:19:14: warning: 'my::Test::onMessage' hides overloaded virtual function [-Woverloaded-virtual]
        void onMessage(const C &) override { ::std::cout << "intercepted: C\n"; }
             ^
./message.hpp:45:26: note: hidden overloaded virtual function 'msg::detail::HandlerImpl<my::A, my::B, my::C>::onMessage' declared here: type mismatch at 1st parameter ('const msg::detail::HandlerImpl<my::A, my::B, my::C>::MessageType &' (aka 'const my::A &') vs 'const my::C &')
            virtual void onMessage(const MessageType &) { UNHANDLED_MSG_WARN(MessageType) }
                         ^
./message.hpp:75:27: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
            ::std::visit([this](auto const & m){ onMessage(m); }, mess);
                          ^
prog.cc:26:7: note: in instantiation of member function 'msg::Handler<std::variant<my::A, my::B, my::C>>::processMessage' requested here
    t.processMessage(my::A{});
      ^
3 warnings generated.
unhandled message: my::A
intercepted: B
intercepted: C
Exit Code:
0