वर्ग विशिष्ट new_handler कार्यान्वयन के लिए, मैं निम्नलिखित उदाहरणों में "प्रभावी सी ++" पुस्तक में आया हूं। यह बहुप्रचारित वातावरण में समस्या दिखता है, मेरा प्रश्न यह है कि बहु विशिष्ट वातावरण में वर्ग विशिष्ट new_handler को कैसे प्राप्त किया जाए?वर्ग विशिष्ट set_new_handler
void * X::operator new(size_t size)
{
new_handler globalHandler = // install X's
std::set_new_handler(currentHandler); // handler
void *memory;
try { // attempt
memory = ::operator new(size); // allocation
}
catch (std::bad_alloc&) { // restore
std::set_new_handler(globalHandler); // handler;
throw; // propagate
} // exception
std::set_new_handler(globalHandler); // restore
// handler
return memory;
}