A smart pointer hacked with a deleter doesn't solve the problem either though -- you need to use new[] as well. Custom allocator maybe? I don't even know if they work like that to be honest. But you are fighting me more about this than you should be.Point is, the OP is doing just that, and hence, a smart pointer should relieve some of that burden.