C++ 11 agrega la capacidad de decirle al compilador create a default implementation de cualquiera de los special member functions. Si bien puedo ver el valor de eliminar una función, ¿dónde está el valor de predefinir explícitamente una función? Simplemente déjelo en blanco y el compilador lo hará de todos modos.¿Cuál es el punto en las funciones por defecto en C++ 11?
El único punto que puedo ver es que un constructor por defecto sólo se crea cuando no exista otra constructor:
class eg {
public:
eg(int i);
eg() = default;
};
Pero es que realmente mejor que como lo haces ahora?
class eg {
public:
eg(int i);
eg() {}
};
¿O me está faltando un maletín de uso?
[dig] Además: la definición de ciertas funciones especiales de miembro evita que el compilador falle en otras, pero puede volver a habilitarse con = default. Por ejemplo, si implementa un constructor de copia personalizado, no se generará el constructor de movimiento predeterminado. En lugar de implementarlo usted mismo, puede establecerlo explícitamente si eso fuera suficiente. – boycy