1. It looks like you either imported `std::string` or the whole standard namespace into the global namespace.  
It's ok to do the former in implementation-files, though I would desist as it doesn't gain you all that much in brevity.  
If it's the latter, read "[Why is “using namespace std;” considered bad practice?](https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice)" and change it.

1. Avoid allocating memory. Doing so is slow and can fail. That means accepting the arguments by constant reference, not using temporary copies, and not modifying the arguments.  
If you had C++17, it would mean changing to `std::string_view` for the added flexibility.

1. Prefer using `auto` to a more complicated expression using `decltype`. It's less error-prone, more readable, and also shorter.

1. `<algorithm>` contains `std::min()`. Using that is more readable, shorter and no less efficient than writing it out using the conditional-operator.

1. Did you test (`"abc", "b"`)? That's two deletions edit-distance, but will be accepted anyway.