On Tuesday 25 April 2006 18:46, Avi Kivity wrote:auto_ptr<>'s are fully inlined so their impact is nil.
Should you want to allocate from the heap, try this:
{
spinlock_t::guard g(some_lock);
auto_ptr<Foo> item(new (gfp_mask) Foo); /* or pass a kmem_cache_t */
item->do_something();
item->do_something_else();
return item.release();
}
I love C++, but you have to stop it now. Imagine how many auto_ptr<Foo> will you use inside your kernel. The compiler will need to create a separete class for each. Using templates in the kernel will be plain silly.