Constructor predeterminado explícito
Este código se compila bien con GCC 5.X, MSVC, pero GCC 6.X da error:
"la conversión a 'a' de la lista de inicializadores usaría el constructor explícito 'a :: a ()'"clang"el constructor elegido es explícito en la inicialización de copia".
Quitandoexplicit
o cambiando aa c{}
soluciona el problema, pero tengo curiosidad por saber por qué funciona de esta manera.
class a
{
public:
explicit a () {}
};
struct b
{
a c;
};
int main() {
b d{};
}