#define MSP_GAME_OWNED_H_
#include <stdexcept>
+#include "accessguard.h"
#include "events.h"
#include "handle.h"
#include "stage.h"
template<typename P, typename... Args>
Owned<T>::Owned(Handle<P> parent, Args &&... args)
{
+#ifdef DEBUG
+ AccessGuard::get_instance().check<AccessGuard::Create>();
+#endif
+
if(!parent)
throw std::invalid_argument("Owned::Owned");
if(!obj)
return;
+#ifdef DEBUG
+ AccessGuard::get_instance().check<AccessGuard::Destroy>();
+#endif
+
Stage &stage = get_stage(*obj);
if constexpr(std::is_base_of_v<Component, T>)