defer.h 351 字节
Newer Older
羽飞's avatar
羽飞 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#pragma once

#include <functional>

namespace common {

class DeferHelper
{
public: 
  DeferHelper(const std::function<void()> &defer) : defer_(defer)
  {}

  ~DeferHelper()
  {
    defer_();
  }

private:
  const std::function<void()> &defer_;
};

} // namespace common

#define DEFER(callback) common::DeferHelper defer_helper_##__LINE__(callback)