Resultados da pesquisa a pedido "move-semantics"
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, ...
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] ...
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) ...
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) { ...
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 ...
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 ...
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 ...
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?
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, ...
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, ...