BROKEN CODE BECAUSE OF INSTANTIATION ORDER; A FACTORY THAT RETURNS A RAW POINTER; A SMART POINTER; STD::MAP<STD::STRING, STD::FUNCTION<STD::SHARED_PTR<GAMEOBJECT>()>> _REGISTEREDGAMEOBJECTCLASSES;; TEMPLATE <TYPENAME T> STD::FUNCTION<STD::SHARED_PTR<T>()> MGR::GETCREATOBJECTFUNCTIONJ() {
STD::FUNCTION<STD::SHARED_PTR<T>()> F = []() -> STD::SHARED_PTR<T> {RETURN STD::MAKE_SHARED<T>();};
RETURN F;
}