You are OK with this – it’s a very commonly used pattern in C++ programming. From the C++ Standard section 12.4/10, referring to when a destructor is called:
for a constructed object with
automatic storage duration
when the block in which the object is
created exits