Utilizando std::move para mover elementos em vectores
Conceito muito utilizado no desenvolvimento de games.
No cpp::daily de hoje vamos conhecer um recurso muito utilizado no desenvolvimento de games.
std::move
std::move é usado para indicar que um objeto t pode ser “movido de..para”, ou seja, permitindo a transferência eficiente de recursos de t para outro objeto.
Em particular, std::move produz uma expressão xvalue que identifica seu argumento t. É exatamente equivalente a um static_cast para um tipo de referência rvalue.
Sua sintaxe é: std::move(first,last,result).
Exemplos de uso
Vamos supor que estamos criando um jogo da velha e possuímos um namespace com a seguinte struct que armazena as coordenadas do nosso game:
E possuímos os vectores(v1, v2 e v3) com as seguintes coordenadas:
A saída será:
Agora vamos supor que um jogador venceu marcando a diagonal da esquerda para a direita.
Utilizando std::move para a gente mover o 0,0 para o 1,1 e para o 2,2 usaríamos esse código:
Rodando nosso código e exibindo as saída após o jogador ganhar seria:
Código completo criado para esse exemplo:
Muito simple, né?!
Por hoje é só, são pequenas doses diárias que farão sempre nos manter antenado com o C++ !
Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!