Wiem o funkcjach generowanych przez kompilator, regule trzech i regule pięciu. W scenariuszach rzeczywistych może nie być trywialne ustalenie, które z funkcji generowanych przez kompilator (konstruktory, operatory przypisania, destruktor) faktycznie zostały utworzone przez kompilator.
Czy jest jakiś sposób, aby wyświetlić listę funkcji generowanych przez kompilator dla określonej klasy?
Interesuje mnie przede wszystkim Visual Studio 2019 i Xcode, ale ogólne rozwiązanie byłoby jeszcze bardziej mile widziane.
Oczywiście że tak. W Linuksie (i innych systemach uniksowych) możesz użyć
nm
,readelf
aobjdump
na wygenerowanych obiektowych plikach / bibliotekach / plikach wykonywalnych, aby je zdemontować i sprawdzić wyeksportowane symbole (i wiele więcej).Wiem, że istnieją podobne narzędzia w systemie Windows , ale nie jest to platforma, z którą dużo pracuję, więc niestety nie mogę tam podać dokładnych nazw narzędzi.
źródło
To jest obecnie tylko częściowa odpowiedź.
Visual Studio 2019
Konstruktory
Podczas definiowania obiektu klasy funkcja IntelliSense programu Visual Studio pokazuje dostępne konstruktory, zarówno generowane przez kompilator, jak i własne:
Ta informacja niestety nie zawsze się pojawia. Aby uruchomić powyższy zrzut ekranu, musiałem wpisać coś w nawiasach, stąd przecinek.
źródło