#pragma once #include namespace PIC { void enable(BYTE number); void disable(BYTE number); void eoi(BYTE number); void initialize(); word getISR(); } class IRQHandlerScope { public: explicit IRQHandlerScope(BYTE irq) : m_irq(irq) { } ~IRQHandlerScope() { PIC::eoi(m_irq); } private: BYTE m_irq { 0 }; };