the different meanings of a curly-brace enclosed list hakkında bir sorum var.Neden GCC 6.3, bu Cümle Oluşturma Listesi kodunu açık C++ 11 desteği olmadan derler?
C++ 03'ün C++ 11'in initializer_list
desteklemediğini biliyorum. Bu işe neden üzerinde
map<string, string> interpolate = { { "F", "a && b && c" }, { "H", "p^2 + w" }, { "K", "H > 10 || e < 5" }, { "J", "F && !K" } };
I was challenged ve ben bir cevap olmadığını gördüler: Ancak, hatta -std=c++11
derleyici bayrağı olmadan, bu kodla 6.3 will properly initialize interpolate
gcc'ye. Bu bir Brace-Init-List'tir, ancak standart bir kapsayıcıyı başlatmak için ondan aldığımız yol tipik olarak bir initializer_list
'dur. Öyleyse C++ 11 kodu başlatma işlemini nasıl gerçekleştirir?
Bu soruyu 'Hot Network Questions' Listesine yaptığım için oldukça şaşırdım: | Bu gcc tarafından belgelenmiş olduğunu düşündüm ve daha fazla gcc – P0W
@ P0W varsayılan derleme bayrakları hakkında internette çeşitli yerlerde biraz şaşırdım. Sorduğum anda, varsayım, gcc 5'te varsayılan davranışa benzer şekilde, "-std = C++ 98" kullanıyordum. Sanırım aynı önyargıya sahip olan pek çok insan oldu. Endişelenme, sadece bir sapma olduğundan eminim, normal C++ down-vote oranı yakında geri yüklenmelidir. –