Как преобразовать int в const int, чтобы назначить размер массива в стеке?

Я пытаюсь выделить фиксированный размер в стеке для целочисленного массива

#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;
}

Однако это дает ошибку в последней строке, где я использую N для определения исправлена
ошибка C2057: ожидаемое константное выражение.

Однако, если я определяю N как const int N = 10, код компилируется просто отлично. Как мне привести n1 к типу const int?

Я пробовал: const int N = const_cast(n1), но что дает ошибку.

РЕДАКТИРОВАТЬ: Я использую MS VC++ 2008 для компиляции этого... с g++ он компилируется нормально.

11
задан Deepan Babu 7 March 2012 в 06:28
поделиться