you’re right you’d need some ‘Object’ as reference but that can be anything. I’m sure even in Unity the EventChannel is just some sort of premade Singleton.
Other than that what you mention is definitely possible in C++ and since you already have easy access Singletons like the GameState to use there really is no problem.