Algunas fueron marcadas. Te recomiendo reveas la clase de pasaje por copia, referencia y movimiento que dio martín. Por lo general, uno no debería ver std::move en cualquier lado, solamente en los constructores por movimiento y operador asignación por movimiento. En el proyecto vi movimientos por doquier, y a veces no era necesario (un simple pasaje por referencia bastaba). Otras veces moviste enteros, no es necesario para esos objetos chicos, son 4/8 bytes, copialos y verbosidad que hace tu código menos legible.
Algunas fueron marcadas. Te recomiendo reveas la clase de pasaje por copia, referencia y movimiento que dio martín. Por lo general, uno no debería ver
std::move
en cualquier lado, solamente en los constructores por movimiento y operador asignación por movimiento. En el proyecto vi movimientos por doquier, y a veces no era necesario (un simple pasaje por referencia bastaba). Otras veces moviste enteros, no es necesario para esos objetos chicos, son 4/8 bytes, copialos y verbosidad que hace tu código menos legible.