#include <iostream>
#include <string>

struct S
{
    S()
    {  
        std::cout << "Constructed!" << std::endl;
    }

    S(const S&)
    {  
        std::cout << "Copied!" << std::endl;
    }

    double d[10];
};

int main()
{
    std::cout << "here we begin the show" << std::endl;
    std::basic_string<S> s1;
    std::cout << "lets resize" << std::endl;
    s1.resize(5);
    s1[2].d[2] = 1;
    std::cout << "lets copy" << std::endl;
    std::basic_string<S> s2(s1);
    std::cout << "lets modify" << std::endl;
    s2[2].d[2] = 3;
    std::cout << "lets print" << std::endl;
    std::cout << s1[2].d[2] << std::endl;
    std::cout << s2[2].d[2] << std::endl;
}
