Resultados da pesquisa a pedido "move-semantics"

2 a resposta

implementação do visual studio de "move semântica" e "rvalue reference"

Me deparei com um vídeo do YouTube na concorrência c ++ 11 (parte 3) e o código a seguir, que compila e gera o resultado correto no vídeo. No entanto, recebi um erro de compilação desse código usando o Visual Studio 2012. O compilador reclama do ...

2 a resposta

Por que std :: move usa uma referência direta?

A implementação destd::move basicamente se parece com isso: template<typename T> typename std::remove_reference<T>::type&& move(T&& t) { return static_cast<typename std::remove_reference<T>::type&&>(t); }Observe que o parâmetro destd::move é uma ...

2 a resposta

Como melhorar a passagem de parâmetros std :: vector (mover semântica?)

Parece que não consigo entender completamente a semântica de movimentos: quero preencher umstd::vector (membro de uma classe) de uma função externa. Atualmente, tenho algo como: void fillVector(MyClass & myclass) { std::vector<int> vec; /* ...

2 a resposta

Como o Rust fornece semântica de movimentação?

oSite do idioma Rust [http://www.rust-lang.org/]as reivindicações movem a semântica como um dos recursos do idioma. Mas não vejo como a semântica de movimentos é implementada no Rust. As caixas de ferrugem são o único local em que a semântica de ...

2 a resposta

Pode `* this` ser` move () `d?

Eu gostaria de definir uma classe para organizar dados; quando o empacotamento terminar, eu gostaria demove os dados do empacotamento de fora dele, o que provavelmente invalidará o objeto de empacotamento. Eu acredito que isso é possível com ...

2 a resposta

Mover construtor não é chamado ao lançar uma exceção

Eu tenho uma variável que acumula a exceção atual e precisa ser limpa quando a exceção atual é lançada (para que o mesmo erro não seja relatado novamente). O problema é quethrow std::move(ex); não chama o construtor de movimentação (o ...

2 a resposta

O que acontece quando você atribui uma constante literal a uma referência rvalue?

Esta é, sem dúvida, uma questão minuciosa e principalmente motivada pela curiosidade. Suponha que tenhamos o seguinte: int x = 5; int&& xref = std::move(x); std::cout << "Before assignment x: " << x << std::endl; std::cout << "Before assignment ...

2 a resposta

Quais tipos de std são garantidos como vazios / nulos após serem usados como arg no construtor de movimentação

eu seishared_ptr, unique_ptr, weak_ptr é garantido que ele esteja vazio depois de usado como argumento RVR no construtor do mesmo tipo, mas será que o padrão especifica isso para algum outrostd:: tipos ao lado dos que eu mencionei. Observe que ...

2 a resposta

Mover Construtor vs Copiar Elision. Qual deles é chamado?

Eu tenho dois pedaços de código aqui para mostrar a você. São duas classes e cada uma fornece um Move Constructor e uma função que retorna temporariamente. No primeiro caso, a função que retorna uma chamada temporária deMover Construtor No ...

2 a resposta

Função membro .begin () e std :: begin ()

Chamando a função de membro.begin() dostd::vector estd::begin() em rvalues resulta em saídas diferentes, como mostra o seguinte teste: vector<int> a{ 1, 2, 3 }; vector<int>::iterator it1 = move(a).begin(); // OK vector<int>::const_iterator it2 = ...