Использование static const + const как привязка к массиву

Я делаю что-то вроде этого

Class.hpp:

 class Class {

 private:
     static const unsigned int arraySize;
     int ar[arraySize+2];
 };

Class.cpp:

#include 
const unsigned int arraySize = 384;

Компилятор (q ++, компилятор C ++ для ОС QNX на основе g ++) дает me ошибка: граница массива не является целочисленной константой при компиляции модуля, включающего Class.hpp (не при компиляции Class.cpp).

Почему это не работает? Я знаю, что статический константный член может использоваться как связанный массив, что гарантируется стандартом C ++ (см. this anwser ). Но почему компилятор не видит результат static const + const как константу?

13
задан Community 23 May 2017 в 11:46
поделиться