#include <iostream>
#include <vector>
#include<memory>
#include<string>

using namespace std;

class has_static_constructor
{
    public:
	friend class static_constructor;
	static vector<int> v;
	
	
		
		 class static_constructor
		{
			public:
			
			 vector<int> * uptt=has_static_constructor::&v; //&v;
			static_constructor()
			{
			    cout<<"inside static_constructor";
				//uptt = has_static_constructor::v;
				has_static_constructor::v.push_back(1);
				has_static_constructor::v.push_back(20);
			}
			
		} ;
		
		static std::unique_ptr<has_static_constructor::static_constructor> upt ;
};



unique_ptr<has_static_constructor::static_constructor> has_static_constructor::upt(new has_static_constructor::static_constructor());

vector< int > has_static_constructor::v(2,100);

int main() {
	// your code goes here
	
	for (std::vector<int>::const_iterator i = has_static_constructor::v.begin(); i != has_static_constructor::v.end(); ++i)
    {	std::cout << *i << ' ';
    	cout<<"\n I was here\n";
    }
    
	return 0;
}