Inicialización de matriz usa la variable const en C ++

esto puede funcionar

const int size = 2;
int array[size] = {0}; 

Esto tiene un error de compilación:

int a = 2;
const int size = a;
int array[size] = {0};

¿por qué?