Python has the additional problem of being highly dynamic, though!
In C++'s case, the transformation tool has much more information, so more things are possible to do.
E.g. let's take the ".erase" case from the article. In python, a method
def foo(bar):
bar.remove(baz)
can't simply change "remove" to "erase", because it has no idea what type "bar" has.A C++ tool sees
void foo(std::list<sometype>& baz)
and can then safely change "remove" to "erase".