Resultados da pesquisa a pedido "move-semantics"

1 a resposta

Por que os construtores de movimentação excluídos implícita e explicitamente são tratados de maneira diferente?

O que éjustificativapor trás do tratamento diferente de construtores de movimentação excluídos implícita e explicitamente no padrão C ++ 11, com relação à geração implícita de construtores de movimentação de classes que contêm / herdam? C ++ 14 ...

1 a resposta

Mover construtor para classe derivada

Eu tenho 2 aulas: template<typename T> class base{ T t; public: base(base &&b): t(std::move(b.t)){} }; template<typename T, typename T2> class derived : protected base<T>{ T2 t2; public: derived(derived &&d): ...

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

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

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

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

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

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

2 a resposta

Retornando std :: vector por valor

Costuma-se dizer que em C ++ 11 é sensato retornar