Interrupt Service Routine (ISR) outside a class

C++ has always been backwards compatible with C.

unless the library you're using uses and defines the ISR, there's no reason you can't write your own ISR

C++ (at Bell Labs) originally translated C++ code into C. you can certainly implement objects with C structs.

see How's is this program working? - #9 by gcjr