It's entirely possible to invoke memory unsafety in modern C++.
std::vector<int> v {1, 2, 3};
int& x = something(v);
something_else(std::move(v));
x = 42;
Is this UB? Impossible to tell without examining the code of the functions involved!