Exemplo n.º 1
0
void weakptr_study() {
	{
		std::shared_ptr<int> kid2(new int(5));
	}
	WDummy dd;
	std::shared_ptr<WDummy> spr2 = dd.process();

	std::shared_ptr<int> kid(new int(10));
	
	
	std::weak_ptr<int> ptr1 = kid;
	//std::cout << ptr1.use_count() << std::endl;
	std::weak_ptr<int> ptr2;
	{
		std::shared_ptr<int> kid2(new int(10));
		ptr2 = kid2;
	}
	if (ptr1.expired()) {
		std::cout << "ptr1 dead" << std::endl;
	}
	if (ptr2.expired()) {
		std::cout << "ptr2 dead" << std::endl;
	}

	// convert	
	std::shared_ptr<int> sptr2(ptr2);
	//std::shared_ptr<int> sptr4 = ptr2;
	auto sptr1 = ptr2.lock();
	std::shared_ptr<int> sptr3 = ptr2.lock();

}
Exemplo n.º 2
0
imm_ws()
{
	register nodep wtop;
	cursor = work_node(curr_workspace);
	dec_block( N_IMM_BLOCK );
	cursor = realcp( kid2((wtop = work_node(curr_workspace))) );
	work_scursor(curr_workspace) = wtop;
	work_debug(curr_workspace) = 0;
#ifdef GEM
	do_gdupdate();
#endif
	prep_r_window();		/* setup for debug */
}