Je connais les fonctions générées par le compilateur, la règle de trois et la règle de cinq. Dans les scénarios du monde réel, il peut ne pas être trivial de déterminer exactement quelles fonctions générées par le compilateur (constructeurs, opérateurs d'affectation, destructeur) ont été réellement créées par le compilateur.
Existe-t-il un moyen de répertorier les fonctions générées par le compilateur pour une classe spécifique?
Je suis principalement intéressé par Visual Studio 2019 et Xcode, mais une solution générique serait encore plus bienvenue.
Bien sûr que oui. Sur Linux (et d' autres systèmes Unix) vous pouvez utiliser
nm
,readelf
etobjdump
sur les fichiers objets générés / bibliothèques / exécutable pour les démonter et inspecter tous les symboles exportés (et beaucoup plus).Il existe des outils similaires sur Windows , je sais, mais ce n'est pas une plate-forme avec laquelle je travaille beaucoup, donc malheureusement je ne peux pas y nommer des noms d'outils exacts.
la source
Ce n'est actuellement qu'une réponse partielle.
Visual Studio 2019
Constructeurs
Lors de la définition d'un objet de classe, la fonction IntelliSense de Visual Studio affiche les constructeurs disponibles, générés par le compilateur et les vôtres:
Malheureusement, ces informations ne sont pas toujours disponibles. Pour le faire fonctionner pour la capture d'écran ci-dessus, j'ai dû taper quelque chose entre parenthèses, d'où la virgule.
la source