Skip to content

Latest commit

 

History

History
55 lines (46 loc) · 1.24 KB

simple-examples.md

File metadata and controls

55 lines (46 loc) · 1.24 KB

Simple Examples

If you are not familar with Boost.Signals2, please read Boost.Signals2: Connections

Example with signal<> and connection

// Creates signal and connects 1 slot, calls 2 times, disconnects, calls again.
// Outputs:
//  13
//  17
#include "libfastsignals/signal.h"

using namespace is::signals;

int main()
{
    signal<void(int)> valueChanged;
    connection conn;
    conn = valueChanged.connect([](int value) {
        cout << value << endl;
    });
    valueChanged(13);
    valueChanged(17);
    conn.disconnect();
    valueChanged(42);
}

Example with scoped_connection

// Creates signal and connects 1 slot, calls 2 times, calls again after scoped_connection destroyed.
//  - note: scoped_connection closes connection in destructor
// Outputs:
//  13
//  17
#include "libfastsignals/signal.h"

using namespace is::signals;

int main()
{
    signal<void(int)> valueChanged;
    {
        scoped_connection conn;
        conn = valueChanged.connect([](int value) {
            cout << value << endl;
        });
        valueChanged(13);
        valueChanged(17);
    }
    valueChanged(42);
}