Say I have a function foo()
which accepts a pointer to a void
function as a parameter.
void foo(void (*bar)(int)) {
bar(5);
}
If I have a non-void
function f(int)
bool f(int i) {
// ...
return true;
}
Is there a way to cast f
in such a way that it can be passed to foo()
without warnings?
My current solution is to define a function void g(int i) {f(i);}
and pass g
to foo
, but this seems inefficient to me. It seems like there should be a way to cast f
in such a way that its return value is thrown out.
If this isn't possible, why not?