std::array
w C++ 11 jest użyteczną klasą zapewniającą interfejs kontenera C++ na macierzy stosu C.Decyzja projektowa dotycząca std :: array fill
Ale dlaczego std::array
nie ma typowego konstruktora wypełnienia, który ma większość kontenerów? Zamiast tego ma metodę fill
.
Czy jest jakiś powód, dla którego std::array
jest unikalny wśród kontenerów STL w tym zakresie?
Bo inaczej std :: array nie byłby już POD. –
Myślałem, że C++ 11 rozluźniło definicję POD – Channel72
@ Channel72: POD: * "Struktura POD jest klasą niezłączną, która jest klasą __trivial__ i klasą standardowego layoutu [...]" *. trywialna klasa: * "Klasa trywialna jest klasą, która ma domyślny konstruktor (12.1), nie ma __nie-trywialnych domyślnych konstruktorów__, i jest trywialnie kopiowalna." * Jednak 'std :: array' jest agregatem, a takie mają przestrzegać podobnych zasad (patrz odpowiedź Borgleadera). – Zeta