Is there any easy way to create a scope for termination of the object?

I have a template method that takes a type and allocates and deallocates based on that type.

class bar
{
   void foo(T)()
   {
      T x;
      alloc(x);
scope(~this) dealloc(x); // hypothetical that wraps the statement in a lambda and deallocates in the destructor

... x must stay allocated until class instance termination(has to do with COM, can't release it in foo)
   }

}

Now, x cannot be a field because T is unknown(i suppose I could use object, void*, etc, but...).



I realize there are ways to work around this. I will create lambdas that release them since that is easiest. I could return x but that creates a mess.

Hoping that either something like this exists or could be a feature enhancement.



Reply via email to