It is subjective/debatable.
In my opinion there are two levels of resource (memory is one of the resources provided by OS) leaks: OS-level and Application Level. Please note that names are custom and there might be a better suitable technical term for them.
Application-level leak ceases to exist once application terminates because OS cleans application's mess. I.e. once application is nuked, threat to OS stability is gone. On decent operating system memory allocations in applications can only produce "application-level" leak.
OS-level leak will not cease to exist once application terminates. Normally some other resources fall into that category (files), but not memory. However, I cannot guarantee that there is no operating system/platform that doesn't clean up leaked memory. By murphy's law there probably is such platform used even today.
So when I say/write "memory leak" I'm talking about application-level leak - any memory allocation that is not explicitly deleted by APP. Every allocation, even intentional, falls into category. Also, normally memory allocation profilers and similar tools will complain about your "intentional leaks",
So, yes, your code has a leak.
In my opinion, making leaks even on purpose, even when you're certain that OS will free them is a bad idea because it encourages sloppy coding and one day you'll fail to delete class that releases something importan in its destructor that can't be cleaned up by OS automatically. Given amount of junk left in windows registry and temporary files folder on average PC, many programmers routinely use that technique for resources that aren't cleaned up by OS properly. So the best idea would be to avoid making leaks.