#include #include #include "util.h" #include "WeaponObject.h" #include "ArmorObject.h" template <> void safe_free(void * & ptr) { if (ptr == nullptr) return; free(ptr); ptr = nullptr; } template <> void safe_free(const char * & ptr) { auto x = static_cast(const_cast(ptr)); safe_free(x); } template <> void safe_free(WeaponObject * & ptr) { delete ptr; } template <> void safe_free(ArmorObject * & ptr) { delete ptr; } template void safe_free(T * & ptr) { auto x = static_cast(ptr); safe_free(x); } template void safe_free(char * &); template void safe_free(FILE * &);