A std::array<T>
è essenzialmente un array in stile C avvolto in un struct
. L'inizializzazione di struct
s richiede le parentesi e l'inizializzazione degli array richiede anche parentesi. Quindi ho bisogno di due coppie di parentesi graffe:std :: array <T> inizializzazione
std::array<int, 5> a = {{1, 2, 3, 4, 5}};
Ma la maggior parte del codice di esempio che ho visto usa solo un paio di parentesi graffe:
std::array<int, 5> b = {1, 2, 3, 4, 5};
Come mai questo è consentito, e ce l'ha tutti i benefici o svantaggi rispetto al primo approccio?
io non sono sicuro che _is_ consentito dalla norma - possibilmente i compilatori che accettano che il codice si basano su un precedente C++ 11 draft, o semplicemente dare un avvertimento dato che è un'estensione che consente un codice mal formato. – ildjarn
@ildjarn Secondo Johannes, è permesso. – fredoverflow