In C++, one can initialize a list of items of type a with the expression new a[2]{3, 4}. Using a non-constant array size requires the type a to have a zero-argument constructor. Since applying mutation to the array size (i.e., 2 in the given example) would change the constant array size to non-constant, and we aren't sure whether type a contains a zero-argument constructor, we avoid mutating the array size altogether.
Your PR description, but wrapped to 72 chars, will make a good commit message. I'd change "Fix" to "Fixes" (can't remember if "Fix" will auto-close, but I prefer "Fixes" anyway).
In C++, one can initialize a list of items of type
a
with the expressionnew a[2]{3, 4}
. Using a non-constant array size requires the typea
to have a zero-argument constructor. Since applying mutation to the array size (i.e.,2
in the given example) would change the constant array size to non-constant, and we aren't sure whether typea
contains a zero-argument constructor, we avoid mutating the array size altogether.Fixes #265