You are allocating the class with a static C++ method: create. You should define a similar one destroy that deletes the class, and call that when you are done with myClass. If C++ constructs the class, we currently don't have any way to determine how it was allocated, so Swift cannot deallocate it for you. Further, SWIFT_UNSAFE_REFERENCE tells the compiler that you want to manage the class yourself, rather than letting Swift retain/release it. If you want the compiler to automatically destroy the class, you should use a SWIFT_SHARED_REFERENCE.
Here you are using the new operator to allocate the class, but Swift doesn't know that. Short of some fairly complicated program analysis, Swift doesn't have any way to determine this. For example, maybe it was allocated with a custom arena allocator or something.
It might be nice for Swift to provide default allocators for foreign reference types, or try to identify common patterns such as the new operator being used in a static factory method, but as far as I know, that is not implemented right now.