Miembro de matriz de inicialización cero en la lista de inicialización

Tengo una clase con un miembro de matriz que me gustaría inicializar en todos los ceros.

class X
{
private:
    int m_array[10];
};

Para una variable local, hay una forma directa de inicializar a cero (veraquí):

int myArray[10] = {};

Además, el miembro de la clasem_array claramente necesita ser inicializado, ya que los ints de inicialización por defecto simplemente dejarán basura aleatoria, como se explicóaquí.

Sin embargo, puedo ver dos formas de hacer esto para una matriz de miembros:

Con paréntesis:

public:
    X()
    : m_array()
    {}

Con tirantes:

public:
    X()
    : m_array{}
    {}

¿Ambos son correctos? ¿Hay alguna diferencia entre los dos en C ++ 11?

Respuestas a la pregunta(2)

Su respuesta a la pregunta