Суть:
class foo
{
public:
	foo(size_t sz1, size_t sz2) :
			sz1_(sz1),
			sz2_(sz2)
	{
		try
                {
                	data1.resize(sz1_);
			// fill data1
			data2.reserve(sz2_);
			// data2 will be filled later
                }
                catch (std::bad_alloc const&) {
                	std::cout << "Memory is over! :(" << std::endl;
                }
	}	    
	size_t sz1_;
	size_t sz2_;
	std::vector<char> data1;
	std::vector<int> data2;
};
unique_ptr<foo> a(new foo(5,10));	
unique_ptr<foo> b(new foo(8,31));
Хочу гарантировать отсутсвие утечек в случае если память закончилась и exception safety. В случае, если вектор бросает исключение создание объекта прекращается. Чему в этом случае будет равно а? nullptr? Всё ли верно?
