Observer pattern without needing any reference to trigger an event ?

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.