Ich kenne vom Compiler generierte Funktionen, die Dreierregel und die Fünferregel. In realen Szenarien ist es möglicherweise nicht trivial, genau herauszufinden, welche der vom Compiler generierten Funktionen (Konstruktoren, Zuweisungsoperatoren, Destruktoren) tatsächlich vom Compiler erstellt wurden.
Gibt es eine Möglichkeit, die vom Compiler generierten Funktionen für eine bestimmte Klasse aufzulisten?
Ich interessiere mich hauptsächlich für Visual Studio 2019 und Xcode, aber eine generische Lösung wäre noch willkommener.
Natürlich gibt es. Auf Linux (und anderen Unix - Systemen) können Sie verwenden
nm
,readelf
undobjdump
auf das erzeugte Objektdateien / Bibliotheken / ausführbare sie zu zerlegen und untersuchen alle exportierten Symbole (und vieles mehr).Ich weiß, dass es unter Windows ähnliche Tools gibt , aber das ist keine Plattform, mit der ich viel arbeite. Daher kann ich dort leider keine genauen Toolnamen nennen.
quelle
Dies ist derzeit nur eine teilweise Antwort.
Visual Studio 2019
Konstruktoren
Beim Definieren eines Klassenobjekts zeigt die IntelliSense-Funktion von Visual Studio die verfügbaren Konstruktoren an, die sowohl vom Compiler generiert als auch von Ihnen selbst erstellt wurden:
Diese Informationen werden leider nicht immer angezeigt. Damit es für den obigen Screenshot funktioniert, musste ich etwas in Klammern eingeben, daher das Komma.
quelle