instead - Nuevo std:: map:: erase() signature C++ 17
list iterator c++ (1)
Existe una ambigüedad potencial con el erase(const key_type& key)
cuando pasa un iterator
. Considere el caso donde el key_type
es algo como std::any
.
De acuerdo con esta respuesta , un iterator
debe ser convertible implícitamente a const_iterator
. Dado que eso es cierto, como podemos ver que sucede en insert_or_assign()
, entonces ¿por qué en C ++ 17 se agregó una nueva firma a std::map::erase()
?
En C ++ 11, tenemos el iterator erase( const_iterator pos );
En C ++ 17, ahora tenemos el iterator erase( iterator pos );
¿No fue la firma C ++ 11 lo suficientemente buena para recibir iterator
y const_iterator
?