navicat-keygen/navicat-patcher/ResourceTraitsCapstone.hpp
2019-09-06 22:35:29 +08:00

34 lines
726 B
C++

#pragma once
#include <capstone/capstone.h>
struct CapstoneHandleTraits {
using HandleType = csh;
static inline const HandleType InvalidValue = NULL;
[[nodiscard]]
static bool IsValid(const HandleType& Handle) noexcept {
return Handle != InvalidValue;
}
static void Releasor(HandleType& Handle) noexcept {
cs_close(&Handle);
}
};
struct CapstoneInsnTraits {
using HandleType = cs_insn*;
static inline const HandleType InvalidValue = nullptr;
[[nodiscard]]
static bool IsValid(const HandleType& Handle) noexcept {
return Handle != InvalidValue;
}
static void Releasor(const HandleType& Handle) noexcept {
cs_free(Handle, 1);
}
};