¿Cómo convertir int a const int para asignar el tamaño de matriz en la pila?

Estoy tratando de asignar un tamaño fijo en la pila a una matriz entera

#include<iostream>
using namespace std;

int main(){

    int n1 = 10;
    const int N = const_cast<const int&>(n1);
    //const int N = 10;
    cout<<" N="<<N<<endl;
    int foo[N];
    return 0;
}

Sin embargo, esto da un error en la última línea donde estoy usandoN para definir un @ fi
error C2057: expected constant expression.

Sin embargo, si definoN comoconst int N = 10, el código se compila muy bien. ¿Cómo debo escribirn1 para identificarlo comoconst int?

Lo intenté const int N = const_cast<const int>(n1) pero eso da error.

EDIT: Estoy usando MS VC ++ 2008 para compilar esto ... con g ++ se compila bien.

Respuestas a la pregunta(4)

Su respuesta a la pregunta