Я делаю что-то вроде этого
Class.hpp:
class Class {
private:
static const unsigned int arraySize;
int ar[arraySize+2];
};
Class.cpp:
#include <Class.hpp>
const unsigned int arraySize = 384;
Компилятор (q ++, компилятор С++ для ОС QNX на основе g++) дает мне error: array bound is not an integer constant
при компиляции единицы, включая Class.hpp
(не при компиляции Class.cpp).
Почему это не работает? Я знаю, что статический член const может использоваться как привязка к массиву, гарантированный стандартом С++ (см. этот anwser). Но почему компилятор не видит результат static const + const
как константу?