#include <iostream>
#include <functional>
using callback = std::function<void(int, void*)>;
void AddCallback(callback cb) {}
void foo(int i) {}
int main() {
auto f = std::bind(&foo, std::placeholders::_1);
AddCallback(f);
}
I tried the code with g++ 9.3.0 and clang++ 10.0.0, they both compiled ends no errors.
Is the type of bind result and callback the same type? One is std::function<void(int, void*)>
, the other is something equal to std::function<void(int)>
? Why can I call AddCallback()
with different types?