Resultados da pesquisa a pedido "move-semantics"

1 a resposta

Tipos embutidos têm semântica de movimento?

Consideraristo código:

2 a resposta

Função membro .begin () e std :: begin ()

Chamando a função de membro.begin() dostd::vector estd::begin() em rvalues resulta em saídas diferentes, como mostra o seguinte teste: vector<int> a{ 1, 2, 3 }; vector<int>::iterator it1 = move(a).begin(); // OK vector<int>::const_iterator it2 = ...

2 a resposta

Como enganar boost :: asio para permitir manipuladores somente de movimento

Em um protocolo de comunicação RPC, após a invocação de um método, estou enviando mensagens &quot;concluídas&quot; de volta ao chamador. Como os métodos são ...

3 a resposta

Construtor / atribuição de movimentação padrão e construtor / atribuição de cópia excluída

De acordo com o padrão, Se a definição de uma classe X não declarar explicitamente um construtor de movimentação, uma será implicitamente declarada como padrão se e somente se - X não possui um construtor de cópias declarado pelo usuário, - X ...

2 a resposta

Qual é a justificativa para operadores de atribuição de movimentação inseguros e com atribuição automática na biblioteca padrão?

A política da biblioteca padrão sobre atribuição de movimentação é quea implementação pode assumir que a auto-atribuição nunca acontecerá [/a/13127916]; isso me parece uma péssima idéia, já que: o contrato de atribuição "regular" ("cópia") em C ...

1 a resposta

O que garante a biblioteca padrão sobre a atribuição de movimentação automática?

1 a resposta

Lvalue para desvalorizar a ligação de referência

2 a resposta

Std :: move e std :: copy são idênticos?

Eu tentei fazer algo como: std::copy(std::make_move_iterator(s1.begin()), std::make_move_iterator(s1.end()), std::make_move_iterator(s2.begin()));E recebi este erro: error: using xvalue (rvalue reference) as lvalue *__result ...

1 a resposta

Mover ou otimização de valor de retorno nomeado (NRVO)?

Digamos que temos o seguinte código: std::vector<int> f() { std::vector<int> y; ... return y; } std::vector<int> x = ... x = f();arece que o compilador tem duas abordagens aqu (a) NRVO: Destrua x, depois construa f () no lugar de x. (b) ...

4 a resposta

Por que copiamos e depois movemos?