TensorRT C++ API: Are calls to destroy() necessary?

I am working through many of the TensorRT examples in C++ and I noticed they all seem to call destroy() on various objects that are created during processing.

Are these calls actually necessary or does the destructor of the object call destroy() on my behalf? That is, am I OK with just letting the object go out of scope, where the destructor (and therefore destroy()) will be called?