#include <iostream>
#include <functional>
// A function that takes a std::function callback
void process(int x, std::function<void(int)> callback) {
std::cout << "Processing value: " << x << std::endl;
callback(x); // Invoke the callback function
}
// A callback function
void myCallback(int result) {
std::cout << "Callback called with value: " << result << std::endl;
}
int main() {
int value = 42;
process(value, myCallback); // Pass the callback function using std::function
// Alternatively, using a lambda as a callback
process(value, [](int result) {
std::cout << "Lambda callback called with value: " << result << std::endl;
});
return 0;
}