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: