Conheço as funções geradas pelo compilador, a regra de três e a regra de cinco. Em cenários do mundo real, pode não ser trivial descobrir exatamente quais funções geradas pelo compilador (construtores, operadores de atribuição, destruidor) foram realmente criadas pelo compilador.
Existe alguma maneira de listar as funções geradas pelo compilador para uma classe específica?
Estou interessado principalmente no Visual Studio 2019 e no Xcode, mas uma solução genérica seria ainda mais bem-vinda.
Claro que existe. No Linux (e outros sistemas Unix) você pode usar
nm
,readelf
eobjdump
no objeto arquivos gerados / bibliotecas / executável para desmontá-los e inspecionar quaisquer símbolos exportados (e muito mais).Existem ferramentas semelhantes no Windows , eu sei, mas essa não é uma plataforma com a qual trabalho muito, então, infelizmente, não posso nomear nomes exatos de ferramentas lá.
fonte
Atualmente, isso é apenas uma resposta parcial.
Visual Studio 2019
Construtores
Ao definir um objeto de classe, a função IntelliSense do Visual Studio mostra os construtores disponíveis, gerados pelo compilador e os seus:
Infelizmente, essas informações nem sempre são exibidas. Para que funcionasse para a captura de tela acima, tive que digitar algo entre parênteses, daí a vírgula.
fonte