Little conveniences
Danilo Almeida
dalmeida at MIT.EDU
Sat Oct 3 18:59:54 EDT 2009
Greg,
Wrt the out pointer argument casting issues, you can do something like this:
#define k5alloc(Size, PointerToPointer) \
( !((*(PointerToPointer)) = calloc(Size, 1)) ? ENOMEM : 0 )
For C++, you need a cast in there, so a template does the trick:
template<typename T> int k5alloc(size_t Size, T* PointerToPointer)
{
return ( !((*(PointerToPointer)) = (T) calloc(Size, 1)) ? ENOMEM : 0
);
}
Then you can always just do:
ret = k5alloc(sizeof(foo), &foo);
if (ret) ...
- Danilo
More information about the krbdev
mailing list