устанавливать У меня есть два typedefs
:станд :: unordered_map нарушение прав доступа на
typedef std::function<void(SDL_Event)> EventCallback;
typedef std::unordered_map<std::string, EventCallback> EventCallbackContainer;
И в моем EventManager
классе я добавляю его так же, как это:
EventCallbackContainer m_eventCallbackContainer;
Я не знаю, как инициализировать и, как я понял, мне тоже этого не следовало.
В EventManager
У меня есть функция в addCallback
шаблон, который я называю, тогда emplaces его в std::unordered_map
, но как я могу получить нарушение прав доступа, глядя на VS смотреть это кажется, что std::unordered_map
NULL
является.
addCallback функция:
template<class Class>
inline void EventManager::addEventCallback(std::string gameStateID, void(Class::* func)(SDL_Event), Class* instance)
{
EventCallback callback = std::bind(func, instance, std::placeholders::_1);
m_eventCallbackContainer.emplace(gameStateID, callback);
}
Я не знаю, почему это так и как я могу это исправить.
Проекты Вся кодовая, если вам нужно больше контекста (не чувствовать себя обязанными выглядеть слишком, хотя, он не предназначен в качестве Просмотр Кода): Github with codebase
Is 'this' null? – user2357112
Вздох, да, кажется, так, позвольте мне взглянуть дальше. –
MY BAD, нашел проблему, спасибо, добрый anon. Я инициализировал другой класс перед моим eventManager, который вызывает addCallback, то есть он вызывает его до того, как EventManager даже существует, опять же, спасибо! –