# sigslot **Repository Path**: sunxinwu/sigslot ## Basic Information - **Project Name**: sigslot - **Description**: C++11 signal/slot implementation - **Primary Language**: Unknown - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-22 - **Last Updated**: 2021-11-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README sigslot ======= C++11 signal/slot implementation ## Requirements ## * c++11 ## How to use ## For a code sample, see test.cpp ``` class Emitter { public: Signal the_signal; void do_emit(int value) { the_signal.emit(value); } }; ``` The only thing required for a class to emit signals, is to declare a field of the Signal<> type. The template arguments will be the parameter types of the slots to be bound to the signal. ``` class Receiver: public SigSlotBase { public: void slot(int v) { cout << "Yay! " << v << endl; } }; ``` The only thing required for a class to be able to bind to signals, is for it to derive from SigSlotBase. After that, every method of the object can be bound to signals. ``` int main(int argc, char* argv[]) { // Create both an emitting and receiving instance Emitter em; Receiver recv; // Bind the slot to the signal em.the_signal.bind(&Receiver::slot, &recv); // Emit em.do_emit(42); return EXIT_SUCCESS; } ``` Here we instantiate both classes, bind the signal and emit it.