I see what Neil means. There’s a big difference between, say, TArray and std::vector:
TArray int_array;
TArray::TIterator iter = int_array.begin();
TArray::TConstIterator const_iter = int_array.begin();
std::vector int_vec;
std::vector::iterator vec_iter = int_vec.begin();
std::vector::const_iterator vec_iter_const = int_vec.begin();
With std::vector, you can easily get the const_iterator from the non_const vector object, but with TArray, you get a compile error on the third line.