Ich versuche, den globalen Operator neu zu laden und für eine leistungsabhängige Anwendung zu löschen. Ich habe die in Ссылка beschriebenen Bedenken und die Empfehlungen zur Verwendung des Zuweisers von Intel TBB gelesen Ссылка
Da ich zum ersten Mal neu überladen und löschen möchte, habe ich ein paar Fragen.
Sollte ich meinen neuen Header Allocator.h (oder Pre.h) mit der überladenen neuen Funktion in alle Dateien mit "neuen" Anrufen aufnehmen? Das ist mühsam.
Oder soll ich "gcc -include Allocator.h ..." verwenden, das Allocator.h (vorher) in jede Übersetzungseinheit einbezieht? Ich möchte die Code-Plattform so weit wie möglich unabhängig halten. Unterstützen alle Compiler etwas analog zu "gcc -include"?
Wenn Sie das globale operator new
und operator delete
überladen wollen, müssen Sie es nur implementieren. Sie müssen es nicht überall explizit definieren, da es bereits als Teil der Sprache definiert ist.
Bearbeiten: Wenn Sie einen neuen Operator definieren möchten, der andere Parameter annimmt, müssen Sie ihn überall einfügen. Wie auch immer du das tust, liegt ganz bei dir. es ist meistens eine Frage des Stils.
Und vergessen Sie nicht, alle Varianten des globalen Operators neu zu implementieren und zu löschen: new
, new[]
, delete
, delete[]
und% std::nothrow
.
Tags und Links c++ operator-overloading