如果我没记错的话,有一个类的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的实现被调用,并且想知道是否有人可以帮我识别它?