1

为了将 Boost.Signals2 与 Hypodermic 一起使用,我将如何连接插槽?我会将连接代码放在 OnActivating 块中吗?

即使 Hypodermic 是用 Signals2 构建的,我是否认为它们并没有重复彼此的功能?

4

1 回答 1

2

在 OnActivating 中连接信号不会“触发”信号;也就是说,您的信号的代表不会被调用。

但是,当然,您可以执行以下操作来使其正常工作:

mySignal.connect([](std::shared_ptr< Foo > foo)
{
    // do some stuff with Foo being activated
}); 

builder.autowireType< Foo >()->onActivating(
    [&mySignal](IActivatingData< Foo >& data)
    {
        // invoke all delegates...
        mySignal(data.instance());
    }
);

希望有帮助。

于 2013-02-19T15:28:56.420 回答