Wandbox
SettingsLog
SettingsLog
Language
GitHubLogin
Ran/Viewed Log

Author

anonymous

over 7 years ago

Language

Compiler

Options

Author

anonymous

over 7 years ago

$
prog.cc: In function 'std::ostream& operator<<(std::ostream&, const Value&)':
prog.cc:29:15: error: no match for call to '(operator<<(std::ostream&, const Value&)::<lambda(auto:1)>) (Foo)'
  visitor(Foo{});
               ^
prog.cc:20:32: note: candidate: template<class auto:1> operator<<(std::ostream&, const Value&)::<lambda(auto:1)>
  auto visitor = [&](auto a) -> decltype(static_cast<std::ostream&(*)(std::ostream&, const decltype(a)&)>(&operator<<)(os, a))
                                ^~~~~~~~
prog.cc:20:32: note:   template argument deduction/substitution failed:
prog.cc: In substitution of 'template<class auto:1> operator<<(std::ostream&, const Value&)::<lambda(auto:1)> [with auto:1 = Foo]':
prog.cc:29:15:   required from here
prog.cc:20:41: error: invalid static_cast from type '<unresolved overloaded function type>' to type 'std::ostream& (*)(std::ostream&, const Foo&) {aka std::basic_ostream<char>& (*)(std::basic_ostream<char>&, const Foo&)}'
  auto visitor = [&](auto a) -> decltype(static_cast<std::ostream&(*)(std::ostream&, const decltype(a)&)>(&operator<<)(os, a))
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:19:57: warning: unused parameter 'value' [-Wunused-parameter]
 std::ostream &operator<<(std::ostream &os, const Value &value) {
                                                         ^~~~~
Exit Code:
1