Boost.Signals2 切断

どうやって切断するのかと思ってたけど、こうか。

#include <iostream>
#include <boost/signals2.hpp>

void f() { std::cout << "f" << std::endl; }

struct g_type {
    void operator()() const { std::cout << "g" << std::endl; }
} g;

int main()
{
    boost::signals2::signal<void()> event;

    event.connect(f);

    boost::signals2::connection con = event.connect(g);
    con.disconnect();

    event();
}
f