sigslot alternatives and similar libraries
Based on the "Miscellaneous" category.
Alternatively, view sigslot alternatives based on common mentions on social networks and blogs.
-
ZXing
An open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. [Apache] -
ZBar
A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value. [LGPL2] -
American fuzzy lop
Crazy fuzzing tool that automatically discovers bugs given time and minimal example input. [Apache2] -
UNITS
a compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies. -
Better String
An alternative to the string library for C which is more functional and does not have buffer overflow overrun problems. Also includes a C++ wrapper. [BSD, GPL2] -
value-category-cheatsheet
A PDF cheatsheet for lvalues, rvalues, and the like. [Jank copyleft] -
CommonPP
Small library helping you with basic stuff like getting metrics out of your code, thread naming, etc.
Scout APM: A developer's best friend. Try free for 14-days
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of sigslot or a related project?
Popular Comparisons
README
sigslot
C++11 signal/slot implementation
Requirements
- c++11
How to use
For a code sample, see test.cpp
class Emitter
{
public:
Signal<int> 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 Object
{
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 Object. 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.
Donations
Like it?
If you find this useful, please consider donating to BTC: 1Pck5gui4iXhTQUiUc3qFD7uPbj1cn5ZSB