A simple guide to writing function callbacks in C++.
For the C# equivalent of using delegate see this link:
https://www.technical-recipes.com/2016/how-to-use-delegates-in-c
The steps you need to take are:
1. Declare the function pointer that will be used to point to functions of given return types/argument(s)
In this example a pointer to function that takes and int and returns an int:
typedef int(*fptr)(int);
2. Create the example functions that will be pointed to by the function pointer
In these examples they functions that will be used to transform your number:
int DoubleValue(int value)
{
return value * 2;
}
int SquareValue(int value)
{
return value * Value;
}
3. Apply the callback usage
In this case write a function that accepts that the function pointer as well as the argument(s) used by that function pointer:
int TransformValue(int value, fptr f)
{
return f(value);
}
Full Code Listing showing example usage:
#include <iostream>
typedef int(*fptr)(int);
int DoubleValue(int value)
{
return value * 2;
}
int SquareValue(int value)
{
return value * value;
}
int TransformValue(int value, fptr f)
{
return f(value);
}
int main()
{
const int value = 10;
std::cout << "Value doubled = " << TransformValue(value, DoubleValue) << std::endl;
std::cout << "Value squared = " << TransformValue(value, SquareValue) << std::endl;
return 0;
}
Giving the following output as follows:
