Arrays of unknown bound are subject to some bugs in constant expressions.
const extern int arr[];
constexpr int f(int i) {return arr[i];}
constexpr int arr[] {1, 2, 3};
int main() {constexpr int x = f(2);}
This is spuriously rejected. On the other hand,
extern const int arr[];
constexpr int const* p = arr + 2;
compiles. The standard will presumably incorporate a rule that forbids array-to-pointer conversions on arrays of unknown bound (unless they are completed at the point of evaluation, as in the first
example). The proposed changes reflect this idea.
Please start variable names with an uppercase letter.