gamescope/src/defer.hpp
Joshua Ashton b124200e36 steamcompmgr: Default to left_ptr from cursor font
Avoids having ugly X cursor by default.

Based in part on #280.
2023-01-12 00:11:04 +00:00

32 lines
634 B
C++

#pragma once
namespace defer_detail
{
template <typename Func>
class DeferHelper
{
public:
DeferHelper(Func func)
: m_func(func)
{
}
~DeferHelper()
{
m_func();
}
private:
Func m_func;
};
template <typename Func>
DeferHelper<Func> CreateDeferHelper(Func func)
{
return DeferHelper<Func>(func);
}
}
#define DEFER_1(x, y) x##y
#define DEFER_2(x, y) DEFER_1(x, y)
#define DEFER_3(x) DEFER_2(x, __COUNTER__)
#define defer(code) auto DEFER_3(_defer_) = defer_detail::CreateDeferHelper( [&](){ code; } )