¿Por qué hay un std :: moverse en ambas <algoritmo> y <utilidad>

Iamanon:

La mayoría de las veces que veo std::movepublicado aquí, es hacer referencia a la <utility>versión.

El std::moveen<algorithm> realidad hace lo que su nombre sugiere, movimiento , mientras que el std::moveen<utility> proyecta su argumento a una xValue, que es básicamente un paso de preprocesamiento para finalmente mover el xValue en un valor-I. Así que no es algo confuso para ambos ser identificado movecuando la funcionalidad de cada uno es diferente?

eerorika:

Así que no es algo confuso para ambos de estos para ser nombrado movimiento?

Puede ser confuso, especialmente aquellos que no están acostumbrados a los idiomas que soporta la sobrecarga. Es cierto que las directrices de programación por lo general desalientan sobrecargas con significados distintos.

Pero también no es muy difícil de aprender que hay dos funciones con el mismo nombre, aunque esto es subjetivo. Las diferentes listas de argumentos proporcionan un contexto suficiente para reconocer fácilmente el uno del otro.

¿Por qué hay un std :: movimiento en ambos y

Debido a que los diseñadores del lenguaje optó por utilizar el mismo nombre para ambas funciones.

std::movees una manera muy concisa de expresar ambas funciones. El de <algorithm>es complementaria a std::copypartir de la misma cabecera.

mientras que el std :: calientes y los yesos su argumento a una xValue, que es básicamente un paso de preprocesamiento para finalmente mover

Al describir lo que hace la función no es la única cosa que el nombre de la función se puede expresar. En este caso, el nombre expresa la intención del programador que utiliza la función: El programador tiene la intención de pasar de la lvalue argumento - si es posible.

Esto es algo que los programadores pueden potencialmente tenga que escribir con bastante frecuencia; por lo tanto hay una necesidad de nombre muy corto.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=370134&siteId=1
Recomendado
Clasificación