Sé sobre las funciones generadas por el compilador, la regla de tres y la regla de cinco. En escenarios del mundo real, puede que no sea trivial averiguar exactamente cuáles de las funciones generadas por el compilador (constructores, operadores de asignación, destructor) fueron realmente creadas por el compilador.
¿Hay alguna forma de enumerar las funciones generadas por el compilador para una clase específica?
Estoy principalmente interesado en Visual Studio 2019 y Xcode, pero una solución genérica sería aún más bienvenida.
Por supuesto que lo hay. En Linux (y otros sistemas Unix) puede usar
nm
,readelf
yobjdump
en los archivos / bibliotecas / ejecutables de objetos generados para desmontarlos e inspeccionar los símbolos exportados (y mucho más).Hay herramientas similares en Windows , lo sé, pero esa no es una plataforma con la que trabajo mucho, así que desafortunadamente no puedo nombrar los nombres exactos de las herramientas allí.
fuente
Actualmente, esta es solo una respuesta parcial.
Visual Studio 2019
Constructores
Al definir un objeto de clase, la función IntelliSense de Visual Studio muestra los constructores disponibles, tanto los generados por el compilador como los suyos:
Esta información no siempre aparece, desafortunadamente. Para que funcione para la captura de pantalla anterior, tuve que escribir algo entre paréntesis, de ahí la coma.
fuente