Zu 1) GTL ist zwar nicht OpenSource aber man darf sie frei im Projekt verwenden
Zu 2) Die GTL Implementiert sowohl einen Tracker als auch einen Memory Pool. Der Tracker sammelt nur den Speicher und prüft am ende ob alles freigegeben wurde. Wenn dem nicht so ist wird eine Meldung ausgegeben und der Speicher freigegeben. Der Memory Pool legt einen großen Speicherbereich an (z.B. 10MB) und in diesen werden dann alle Objekte eingelagert. Auch die STL Objekte. Mit _DO_NOT_USE_MEMORY_MANAGER wird verhindert das einige Konstanten Definiert und auch die Überladung des new/delete Operators durchgeführt wird um diesen Memory Pool zu verwenden.
Den Tracker kann man auf die selbe Art ausschalten. So kann man z.B. den Memory Pool benutzen und gleichzeitig den Std new/delete Operator nutzen.
Zu 3) Die Std. Implementierung des new Operators erwartet einen size_t Typ als Parameter und der delete Operator ein void*. Wenn du die gleiche Parameterliste hast, kommt es ebenfalls zu diesem Fehler. Du musst dann einen weiteren Parameter beifügen. Z.b. ein const char* und int für Datei und Zeile. Das hielft dann auch beim Debuggen