Would the following example change behavior?
void foo(void)
{
void* b[3];
void* a[1][3] = { b };
}
error: array must be initialized with a brace-enclosed initializer4 | const void* a[1][3] = { b };| ^ (it's accepted by clang++ and msvc, though, in pedantic/non-permissive mode) (on adding another brace it is accepted by all 3).There's a similar case with array-of-bool: #include <stdbool.h>
error: address of array 'b' will always evaluate to 'true' [-Werror,-Wpointer-bool-conversion]bool a[2][3] = { b };^