Resultados da pesquisa a pedido "move-semantics"

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

4 a resposta

Por que nenhuma atribuição de movimento / construtor de movimento padrão?

Eu sou um programador simples. As variáveis dos membros da minha classe geralmente consistem em tipos de POD e contêineres STL. Por causa disso, raramente preciso escrever operadores de atribuição ou copiar construtores, pois eles são ...

3 a resposta

Como retornar um fstream (C ++ 0x)

Acho que vou entrar nisso e começar com o código: #include <iostream> #include <fstream> #include <string> class test : public std::ofstream { public: test(const std::string& filename) { this->open(gen_filename(filename)); }; test(const test&) = ...

5 a resposta

Tornando a troca mais rápida, fácil de usar e protegida contra exceções

Eu não consegui dormir na noite passada e comecei a pensar emstd::swap. Aqui está a versão familiar do C ++ 98: template <typename T> void swap(T& a, T& b) { T c(a); a = b; b = c; }Se uma classe definida pelo usuárioFoo usa recursos externos, ...

8 a resposta

Que otimização a semântica de movimento fornece se já temos o RVO?

Pelo que entendi, um dos propósitos de adicionar semântica de movimentação é otimizar o código chamando o construtor especial para copiar objetos "temporários". Por exemplo, ...

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

2 a resposta

move semantics std :: move

Eu não entendo muito bem ostd::move function template <class T> typename remove_reference<T>::type&& move(T&& a) { return a; }porqueremove_reference? alguém poderia me dar uma explicação simples?

2 a resposta

Uso correto de `= delete` para métodos em classes

O snipplet a seguir está correto para cancelar a definição de todos os métodos e construtores gerados de outra forma para uma class struct Picture { // 'explicit': no accidental cast from string to Picture explicit Picture(const string ...