Resultados da pesquisa a pedido "move-semantics"

3 a resposta

uando um compilador C ++ 11 fará com que o RVO e o NRVO superem a movimentação da semântica e da ligação de referência cons

Considere o caso quando objetos "inteiros" com a semântica de movimentação ativada forem retornados das funções, como emstd::basic_string<>: std::wstring build_report() const { std::wstring report; ... return report; } Posso, realisticamente, ...

5 a resposta

Move semântica == função de troca personalizada obsoleta?

Recentemente,muito [https://stackoverflow.com/questions/6380862/how-to-provide-a-swap-function-for-my-class] questõe [https://stackoverflow.com/questions/6402463/swap-for-custom-type-in-c-use-adl-or-template-specialization] ...

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

3 a resposta

Maneira adequada (mover semântica) para retornar um vetor std :: da chamada de função em C ++ 11

Eu quero preencher std :: vector (ou algum outro contêiner STL): class Foo { public: Foo(int _n, const Bar &_m); private: std::vector<Foo> fooes_; } 1.Ctor de boa aparência, desempenho caro std::vector<Foo> get_vector(int _n, const Bar &_m) { ...

6 a resposta

Como realmente implementar a regra dos cinco?

ATUALIZA no fund q1: Como você implementaria oegra de cin [https://stackoverflow.com/questions/4782757/rule-of-three-becomes-rule-of-five-with-c0x] para uma classe que gerencia recursos bastante pesados, mas dos quais você deseja que eles ...

5 a resposta

Existe algum caso em que o retorno de uma referência de valor RV (&&) é úti

Existe um motivo para uma função deve retornar uma referência de valor RV? Uma técnica, truque, idioma ou padrão? MyClass&& func( ... ); Estou ciente do perigo deetornando ...

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

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?

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

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