Perguntas com a marcação «move-semantics»

1702
O que é semântica de movimento?

Acabei de ouvir a entrevista de podcast de rádio da Engenharia de Software com Scott Meyers sobre C ++ 0x . A maioria dos novos recursos fazia sentido para mim, e estou realmente empolgado com o C ++ 0x agora, com exceção de um. Ainda não entendo a semântica de movimentos ... O que é...

762
push_back vs emplace_back

Estou um pouco confuso sobre a diferença entre push_backe emplace_back. void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val); Como há uma push_backsobrecarga tomando uma referência rvalue, não vejo bem qual é o objetivo de...

238
O que é "rvalue reference for * this"?

Me deparei com uma proposta chamada "rvalue reference for * this" na página de status C ++ 11 do clang . Eu li bastante sobre referências a rvalue e as compreendi, mas acho que não sei disso. Também não consegui encontrar muitos recursos na web usando os termos. Há um link para o documento da...

127
Quando tornar um tipo não móvel no C ++ 11?

Fiquei surpreso que isso não tenha aparecido nos meus resultados de pesquisa, pensei que alguém teria perguntado isso antes, dada a utilidade da semântica de movimento no C ++ 11: Quando tenho que (ou é uma boa idéia para mim) tornar uma classe não móvel no C ++ 11? ( Outros motivos que não...

104
Como std :: move () transfere valores para RValues?

Eu simplesmente não entendi totalmente a lógica de std::move(). A princípio, pesquisei no Google, mas parece que só existem documentos sobre como usar std::move(), não como funciona sua estrutura. Quer dizer, eu sei o que a função de membro do modelo é, mas quando eu olho para a...

98
Por que copiamos e depois mudamos?

Eu vi um código em algum lugar no qual alguém decidiu copiar um objeto e, posteriormente, movê-lo para um membro de dados de uma classe. Isso me deixou confuso, pois pensei que o objetivo de mover era evitar a cópia. Aqui está o exemplo: struct S { S(std::string str) : data(std::move(str))...