Author
anonymous
over 7 years ago
Language
Compiler
Options
Author
anonymous
over 7 years ago
$
prog.cc:17:28: warning: unused parameter 'callable' [-Wunused-parameter]
void Register(Callable &&callable) {
^
prog.cc:18:5: error: static_assert failed due to requirement 'std::is_convertible_v<void (*&&)(int), std::function<Signature> >' "Wrong Signature!"
static_assert(std::is_convertible_v<Callable&&, std::function<Signature>>, "Wrong Signature!");
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:31:7: note: in instantiation of function template specialization 'A::Register<void (*)(int)>' requested here
a.Register(&f2);
^
prog.cc:18:5: error: static_assert failed due to requirement 'std::is_convertible_v<X2 &&, std::function<Signature> >' "Wrong Signature!"
static_assert(std::is_convertible_v<Callable&&, std::function<Signature>>, "Wrong Signature!");
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:32:7: note: in instantiation of function template specialization 'A::Register<X2>' requested here
a.Register(X2{});
^
prog.cc:18:5: error: static_assert failed due to requirement 'std::is_convertible_v<(lambda at prog.cc:33:16) &&, std::function<Signature> >' "Wrong Signature!"
static_assert(std::is_convertible_v<Callable&&, std::function<Signature>>, "Wrong Signature!");
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prog.cc:33:7: note: in instantiation of function template specialization 'A::Register<(lambda at prog.cc:33:16)>' requested here
a.Register([](int) {});
^
1 warning and 3 errors generated.
Exit Code:
1