Я делаю что-то вроде этого
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
как константу?