Author
anonymous
almost 8 years ago
Language
C++
Compiler
gcc HEAD 7.0.1 20170318 (experimental)
Options
Warnings
Boost 1.63.0
C++1z(GNU)
no pedantic
Author
anonymous
almost 8 years ago
$ g++ prog.cc -Wall -Wextra -I/opt/wandbox/boost-1.63.0/gcc-head/include -std=gnu++1z
prog.cc: In function 'int main()':
prog.cc:39:10: error: call of '(overloader<std::reference_wrapper<main()::<lambda(char)> >, std::reference_wrapper<main()::<lambda(int)> > >) (char)' is ambiguous
o('a'); // BOOM
^
In file included from /opt/wandbox/gcc-head/include/c++/7.0.1/bits/std_function.h:44:0,
from /opt/wandbox/gcc-head/include/c++/7.0.1/functional:58,
from prog.cc:4:
/opt/wandbox/gcc-head/include/c++/7.0.1/bits/refwrap.h:339:2: note: candidate: typename std::result_of<_Tp&(_Args&& ...)>::type std::reference_wrapper<_Tp>::operator()(_Args&& ...) const [with _Args = {char}; _Tp = main()::<lambda(char)>; typename std::result_of<_Tp&(_Args&& ...)>::type = void]
operator()(_Args&&... __args) const
^~~~~~~~
/opt/wandbox/gcc-head/include/c++/7.0.1/bits/refwrap.h:339:2: note: candidate: typename std::result_of<_Tp&(_Args&& ...)>::type std::reference_wrapper<_Tp>::operator()(_Args&& ...) const [with _Args = {char}; _Tp = main()::<lambda(int)>; typename std::result_of<_Tp&(_Args&& ...)>::type = void]
prog.cc:40:8: error: call of '(overloader<std::reference_wrapper<main()::<lambda(char)> >, std::reference_wrapper<main()::<lambda(int)> > >) (int)' is ambiguous
o(0);
^
In file included from /opt/wandbox/gcc-head/include/c++/7.0.1/bits/std_function.h:44:0,
from /opt/wandbox/gcc-head/include/c++/7.0.1/functional:58,
from prog.cc:4:
/opt/wandbox/gcc-head/include/c++/7.0.1/bits/refwrap.h:339:2: note: candidate: typename std::result_of<_Tp&(_Args&& ...)>::type std::reference_wrapper<_Tp>::operator()(_Args&& ...) const [with _Args = {int}; _Tp = main()::<lambda(char)>; typename std::result_of<_Tp&(_Args&& ...)>::type = void]
operator()(_Args&&... __args) const
^~~~~~~~
/opt/wandbox/gcc-head/include/c++/7.0.1/bits/refwrap.h:339:2: note: candidate: typename std::result_of<_Tp&(_Args&& ...)>::type std::reference_wrapper<_Tp>::operator()(_Args&& ...) const [with _Args = {int}; _Tp = main()::<lambda(int)>; typename std::result_of<_Tp&(_Args&& ...)>::type = void]
Exit Code:
1