Resultados da pesquisa a pedido "move-semantics"

2 a resposta

Por que o std :: move impede o RVO?

2 a resposta

Mover atribuição e membro de referência

A atribuição de cópia para uma classe com uma variável de membro de referência é um não-não porque você não pode reatribuir a referência. Mas e quanto à tran...

2 a resposta

Como mover elementos da fila de prioridade STL

A fila de prioridade STL do C ++ possui um método pop vazio () e um método const ref top (). Portanto, se você quiser mover elementos para fora da fila, precisará fazer algo assim: T moved = std::move(const_cast<T&>(myQueue.top()))); ...

2 a resposta

Unique_ptr tem garantia de armazenar nullptr após a movimentação?

Éunique_ptr garantido para armazenarnullptr depois da mudança? std::unique_ptr<int> p1{new int{23}}; std::unique_ptr<int> p2{std::move(p1)}; assert(!p1); // is this always true?

2 a resposta

Quais são as regras para geração automática de operações de movimentação?

No C ++ 98, o compilador C ++ poderiaautomaticamente gerar construtor de cópias e operador de atribuição de cópias por meio de cópia por membro, por exemplo struct X { std::string s; std::vector<int> v; int n; };O compiladorautomaticamente gera ...

2 a resposta

Atribuição de movimento mais lenta que atribuição de cópia - bug, recurso ou não especificado?

Recentemente, percebi que a adição de semântica de movimentação no C ++ 11 (ou pelo menos minha implementação, o Visual C ++) tem ativamente (e de maneira bastante dramática)quebrado uma das minhas otimizações. Considere o seguinte ...

2 a resposta

Versão somente mover da função std ::

Porquestd::function é copiável, o padrão exige que as chamadas usadas para construí-lo também sejam copiáveis: n337 (20.8.11.2.1) template<class F> function(F f); Requer:F deve ser CopyConstructible.f deve ser Callable (20.8.11.2) para ...

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 ...

2 a resposta

Elementos não copiáveis em vetor

Eu tenho uma classe não copiável (ou seja, o construtor de cópias e o operador de atribuição estão marcados como 'excluir'). Eu gostaria de mantê-los em um std :: vector. É uma classe RAII, portanto, simplesmente o armazenamento do ponteiro ou ...

2 a resposta

Mover ou trocar um fluxo de string

Eu quero mover uma sequência de strings, no aplicativo do mundo real, tenho algum membro de dados da classe sequência de strings, que desejo reutilizar para diferentes strings durante a operação. stringstream não possui uma atribuição de cópia ...