C++ Observer

One problem I have often noticed is the lack of events in C++. Whereas creating an event manager is quite simple in a language such as Java, it appeared more difficult to produce on in C++.

To fix this, I have implemented the Observer design pattern in C++. This takes advantage of modern C++14 features in order to provide a simple, clean, concise way of representing a notification system.

In this implementation, users may add hooks for not only events, but for any type, allowing them to receive notifications without any need for custom classes. An Event class is provided, however, to show a possible natural way of using it.