what is a callback in c++ code example
Example 1: callback c++ c
//Define a type for the callback signature,
//it is not necessary, but makes life easier
//Function pointer called CallbackType that takes a float
//and returns an int
typedef int (*CallbackType)(float);
void DoWork(CallbackType callback)
{
float variable = 0.0f;
//Do calculations
//Call the callback with the variable, and retrieve the
//result
int result = callback(variable);
//Do something with the result
}
int SomeCallback(float variable)
{
int result;
//Interpret variable
return result;
}
int main(int argc, char ** argv)
{
//Pass in SomeCallback to the DoWork
DoWork(&SomeCallback);
}
Example 2: c++ callback function
// C++ callback function
class Base {
public:
void doSomething() {
using namespace std::placeholders;
// std::placeholders::_1 is for the callback parameter
// use _1 for 1 argument
// or _1, _2, _3 for 3 arguments and so on
something.setCallback(std::bind(&Base::callback, this, _1));
// std::bind is needed, otherwise
// the callback function would need to be static
}
// Callback function
void callback(int i) {
std::cout << "Callback: " << i << std::endl;
}
}