C++ Builder example of Observer pattern using templates