RAII在销毁时调用函数?

时间:2013-10-31 20:33:13

标签: c++ boost

如果我没记错的话,有一个类的boost实现,你指定一个函数,它将在对象被销毁时调用它。

// it's actually a template if iirc
class Blue
{
public:
    Blue(std::function<void()> f) : func(f) { }
    ~Blue() { func(); }
private:
    std::function<void()> func;
};

// Implementation:

class Foo
{
public:

    Blue Bar()
    {
        /* ... */
        return Blue(std::bind(&Mag, this));
    } 

private:

    void Mag() { /* ... */ }

};

int main()
{
    Foo foo;

    // ...

    {
        foo.Bar();

        // ...

        // Guaranteed Mag() will be called
    }

    // ...

}

我忘记了boost的实现被调用,并且想知道是否有人可以帮我识别它?

0 个答案:

没有答案