Estoy intentando asignar un tamaño fijo en la pila a una matriz de enterosCómo convertir int a const int para asignar el tamaño de la matriz en la pila?
#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 usando N
para definir un fijo
error C2057: expected constant expression
.
Sin embargo, si defino N
como const int N = 10
, el código se compila muy bien. ¿Cómo debo escribir n1
para tratárselo como const int
?
Intenté:const int N = const_cast<const int>(n1)
pero eso da error.
EDIT: Estoy usando MS VC++ 2008 para compilar esto ... con g ++ compila bien.
sólo para añadir un detalle más: gcc compila como una extensión - de hecho, que permite a otras expresiones que ni siquiera son tan cerca de conformarse, como 'int x (int a) {int b [a]; } ' –
Ah, gracias, @JerryCoffin. No vi la edición cuando publiqué. –