Por que o std :: iterator está obsoleto?

Classe de modelostd::iterator está definido para ser descontinuado no C ++ 17. Por quê então? Tem sido uma maneira útil de garantirstd::iterator_traits funciona, especialmente se você pode usar os argumentos do modelo padrão. Existe alguma outra maneira de fazer isso no C ++ 17?