Я наткнулся на этот код на reddit. Я бы подумал, что преобразования типов приведут к тому, что это будет недействительным.
int a[3] = { { {1, 2}, {3, 4}, 5, 6 }, {7, 8}, {9}, 10 };
В clang я получаю несколько предупреждений о чрезмерных элементах и фигурных скобках в скалярном инициализаторе. Но содержимое a
равно [1, 7, 9]
.
Это действительно законно, и если да, может кто-нибудь объяснить, что именно происходит?