Author
anonymous
over 6 years ago
Language
C++
Compiler
clang 7.0.0
Options
Warnings
Boost 1.68.0
C++2a(GNU)
no pedantic
Author
anonymous
over 6 years ago
$ clang++ prog.cc -Wall -Wextra -I/opt/wandbox/boost-1.68.0/clang-7.0.0/include -std=gnu++2a
prog.cc:41:33: error: no member named 'func1' in 'bar'
my_class([](auto foo) { foo.func1(); });
~~~ ^
/opt/wandbox/clang-7.0.0/include/c++/v1/type_traits:4345:23: note: in instantiation of function template specialization 'main()::(anonymous class)::operator()<bar>' requested here
_LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...))
^
/opt/wandbox/clang-7.0.0/include/c++/v1/__config:473:15: note: expanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_NAMESPACE
^
/opt/wandbox/clang-7.0.0/include/c++/v1/type_traits:4363:9: note: while substituting deduced template arguments into function template '__invoke' [with _Fp = (lambda at prog.cc:41:14), _Args = <bar>]
_VSTD::__invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...));
^
/opt/wandbox/clang-7.0.0/include/c++/v1/__config:473:15: note: expanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_NAMESPACE
^
/opt/wandbox/clang-7.0.0/include/c++/v1/type_traits:4461:31: note: in instantiation of template class 'std::__1::__invokable_r<void, (lambda at prog.cc:41:14), bar>' requested here
: integral_constant<bool, __invokable_r<_Ret, _Fn, _Args...>::value> {};
^
/opt/wandbox/clang-7.0.0/include/c++/v1/type_traits:4469:7: note: in instantiation of template class 'std::__1::is_invocable_r<void, (lambda at prog.cc:41:14), bar>' requested here
= is_invocable_r<_Ret, _Fn, _Args...>::value;
^
prog.cc:12:48: note: in instantiation of variable template specialization 'std::__1::is_invocable_r_v<void, (lambda at prog.cc:41:14), bar>' requested here
static constexpr bool is_valid_func_2_v = std::is_invocable_r_v<void, Func, bar>;
^
prog.cc:23:44: note: in instantiation of variable template specialization 'is_valid_func_2_v<(lambda at prog.cc:41:14)>' requested here
template <typename Func2, std::enable_if_t<is_valid_func_2_v<Func2>>* = nullptr>
^
prog.cc:24:6: note: while substituting prior template arguments into non-type template parameter [with Func2 = (lambda at prog.cc:41:14)]
void my_class(Func2&& func_2, bar_tag)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:20:5: note: while substituting deduced template arguments into function template 'my_class' [with Func2 = (lambda at prog.cc:41:14), $1 = (no value)]
my_class(std::forward<Func1>(func_1), default_func_2);
^
prog.cc:41:5: note: in instantiation of function template specialization 'my_class<(lambda at prog.cc:41:14), nullptr>' requested here
my_class([](auto foo) { foo.func1(); });
^
1 error generated.
Exit Code:
1