#include <iostream>
#include <memory>
struct Fred
{
int step;
int ballChange;
};
std::ostream& operator<< ( std::ostream& stm, const Fred& f )
{ return stm << "Fred{" << f.step << ',' << f.ballChange << '}' ; }
int main()
{
constexpr int N = 5 ;
{
// value initialization
std::unique_ptr< Fred[] > p( new Fred[N] () ) ;
for( int i = 0 ; i < N ; ++i ) std::cout << p[i] << ' ' ;
std::cout << '\n' ;
}
{
// addregate initialization
std::unique_ptr< Fred[] > p( new Fred[N] { {0,1}, {2,3}, {4,5} } ) ;
for( int i = 0 ; i < N ; ++i ) std::cout << p[i] << ' ' ;
std::cout << '\n' ;
}
// etc.
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5PgoKc3RydWN0IEZyZWQKewogIGludCBzdGVwOwogIGludCBiYWxsQ2hhbmdlOwp9OwoKc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8ICggc3RkOjpvc3RyZWFtJiBzdG0sIGNvbnN0IEZyZWQmIGYgKQp7IHJldHVybiBzdG0gPDwgIkZyZWR7IiA8PCBmLnN0ZXAgPDwgJywnIDw8IGYuYmFsbENoYW5nZSA8PCAnfScgOyB9CgppbnQgbWFpbigpCnsKICAgIGNvbnN0ZXhwciBpbnQgTiA9IDUgOwoKICAgIHsKICAgICAgICAvLyB2YWx1ZSBpbml0aWFsaXphdGlvbgogICAgICAgIHN0ZDo6dW5pcXVlX3B0cjwgRnJlZFtdID4gcCggbmV3IEZyZWRbTl0gKCkgKSA7CiAgICAgICAgZm9yKCBpbnQgaSA9IDAgOyBpIDwgTiA7ICsraSApIHN0ZDo6Y291dCA8PCBwW2ldIDw8ICcgJyA7CiAgICAgICAgc3RkOjpjb3V0IDw8ICdcbicgOwogICAgfQoKICAgIHsKICAgICAgICAvLyBhZGRyZWdhdGUgaW5pdGlhbGl6YXRpb24KICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8IEZyZWRbXSA+IHAoIG5ldyBGcmVkW05dIHsgezAsMX0sIHsyLDN9LCB7NCw1fSB9ICkgOwogICAgICAgIGZvciggaW50IGkgPSAwIDsgaSA8IE4gOyArK2kgKSBzdGQ6OmNvdXQgPDwgcFtpXSA8PCAnICcgOwogICAgICAgIHN0ZDo6Y291dCA8PCAnXG4nIDsKICAgIH0KCiAgICAvLyBldGMuCn0K
Fred{0,0} Fred{0,0} Fred{0,0} Fred{0,0} Fred{0,0}
Fred{0,1} Fred{2,3} Fred{4,5} Fred{0,0} Fred{0,0}