Resultados da pesquisa a pedido "move-semantics"

1 a resposta

Std :: move é seguro em uma lista de argumentos quando o argumento é encaminhado, e não movido construído?

Tentando fornecer uma solução parastd :: string_view e std :: string em std :: unordered_set [https://stackoverflow.com/q/51749081/364696], Eu estou brincando com a ...

1 a resposta

Por que o `std :: stringstream :: stringstream (std :: string &&)` não existe?

eu estava esperandostringstream tem um construtor que rouba seu conteúdo inicial de umstring&&. Tais interespécies "movem construtores" geralmente não existem no STL? Se não, por que não?

1 a resposta

push_back () e emplace_back () nos bastidores

Atualmente, estou aprendendo C ++ por conta própria e estou curioso sobre comopush_back() eemplace_back() trabalhar sob o capô. Eu sempre assumi queemplace_back() é mais rápido quando você está tentando construir e empurrar um objeto grande para ...

1 a resposta

Por que o compilador não reclama que um iterador movido para um loop for é imutável?

Estou lendo a segunda edição do Rust Book e encontrei o seguinte exemplo na seção de iteradores: let v1 = vec![1, 2, 3]; let v1_iter = v1.iter(); for val in v1_iter { println!("Got: {}", val); }Por que o compilador não reclama quev1_iter ...

2 a resposta

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

1 a resposta

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>&&)?

3 a resposta

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

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

2 a resposta

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

1 a resposta

O Rust pode otimizar a cópia bit a bit durante a movimentação de um objeto algum dia?

Considere o trecho struct Foo { dummy: [u8; 65536], } fn bar(foo: Foo) { println!("{:p}", &foo) } fn main() { let o = Foo { dummy: [42u8; 65536] }; println!("{:p}", &o); bar(o); }Um ...