#include <iostream> #include <cstdint> using namespace std; // 1. Create the function pointer alias here using 'using' // using ISRCallback = ... using ISRCallBack = void (*)(int32_t); void onError(int32_t code) { cout << "ERROR " << code; } void onComplete(int32_t code) { cout << "COMPLETE " << code; } int main() { int32_t mode, eventCode; if (!(cin >> mode >> eventCode)) return 0; // 2. Declare a variable using your alias and initialize to nullptr // ISRCallback cb = nullptr; ISRCallBack cb = nullptr; // 3. Register the correct function based on mode // if (mode == 1) ... // else if (mode == 2) ... if (mode == 1) cb = onError; else cb = onComplete; // 4. Invoke the callback // if (cb) ... if (cb) cb(eventCode); return 0; }
Test Cases
Test Results
Input
1 42
Expected Output
ERROR 42