Resultados da pesquisa a pedido "move-semantics"
Como os objetos movidos podem ser usados? [duplicado]
Esta pergunta já tem uma resposta aqui: O que posso fazer com um objeto movido de? [/questions/7027523/what-can-i-do-with-a-moved-from-object] 2 respostasDepois de mover um objeto, ele deve ser destrutível: T obj; func(std::move(obj)); // don't ...
Por que eu tenho que chamar move em uma referência rvalue?
No código abaixo, por que a primeira chamada nãomkme = mvme_rv expedir paraT& operator=(const T&&)? #include <iostream> #include <string> #include <vector> using namespace std; using T = vector<int>; int main() { T mvme(10, 1), mkme; T&& mvme_rv ...
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 ...
Mover construtor no objeto derivado
Quando você tem um objeto derivado com um construtor de movimentação e o objeto base também possui semântica de movimentação, qual é a maneira correta de chamar o construtor de movimentação de objeto base a partir do construtor de movimentação de ...
Esse uso correto da semântica 'move' do C ++?
Hoje à noite, estive analisando alguns códigos nos quais trabalhei nos últimos dias e comecei a ler sobre a semântica de movimentos, especificamente std :: move. Eu tenho algumas perguntas para pedir aos profissionais para garantir que eu estou ...
Por que a construção de movimentação não é usada ao iniciar um vetor da lista de inicializadores (via construtor implícito)
Para demonstrar a semântica de movimentação, escrevi o seguinte código de exemplo, com um construtor implícito de int. struct C { int i_=0; C() {} C(int i) : i_( i ) {} C( const C& other) :i_(other.i_) { std::cout << "A copy construction was ...
Um membro de dados de um objeto temporário é um xvalue no C ++ 11?
#include <vector> using namespace std; struct A { vector<int> coll; }; void f(const vector<int>&){} void f(vector<int>&&){} int main() { f(A().coll); // Is "A().coll" an xvalue? }O C ++ 11 garantef(A().coll) chamarávoid f(vector<int>&&)?
Mover elemento da matriz boost_ multi-index
Digamos que eu tenha um objeto móvel e não copiável e que tenha um array multi-index com o índice random_access. Preciso mover meu objeto para fora da frente da matriz, mas não consigo encontrar nenhum método que me daria referência rvalue / ...
Quando a adição de um construtor de movimento e um operador de atribuição de movimento realmente fará diferença?
Considerando a alta qualidade dos compiladores atuais em relação à otimização do valor de retorno (RVO e NRVO), fiquei pensando em que complexidade de classe é realmente significativo começar a adicionar construtores de movimento e operadores de ...
C ++ Move semântica e exceções
No próximo padrão C ++ 0x, o que acontece quando uma exceção é lançada dentro / durante o construtor de movimentação? O objeto original permanecerá? ou o objeto original e o objeto de mudança estão em um estado indefinido? quais são as garantias ...