Resultados da pesquisa a pedido "move-semantics"

1 a resposta

Realocação de vetor usa a cópia em vez do construtor de movimento

1 a resposta

Como escrevo a função de atribuição de movimento para essa classe derivada?

1 a resposta

Lvalue para desvalorizar a ligação de referência

1 a resposta

Argumento do construtor C ++ 11: std :: move e value ou std :: forward e rvalue reference

Qual dos dois abaixo deve ser o preferido e por quê? struct X { Y data_; explicit X(Y&& data): data_(std::forward<Y>(data)) {} };vs struct X { Y data_; explicit X(Y data): data_(std::move(data)) {} };

1 a resposta

Std :: move (* this) é um bom padrão?

Para que esse código com os qualificadores de referência C ++ 11 funcionem conforme o esperado, tenho que introduzir umstd::move(*this) isso não parece certo. #include<iostream> struct A{ void gun() const&{std::cout << "gun const&" ...

1 a resposta

Por que não consigo mover o std :: unique_ptr dentro do lambda no C ++ 14?

Quero passar um ponteiro bruto dentro do lambda, mas não quero que ele vaze, se o lambda não for chamado. Se parece com isso: void Clean(std::unique_ptr<int>&& list); void f(int* list) { thread_pool.Push([list = std::unique_ptr<int>(list) ] { ...

1 a resposta

Retornar valores para objetos ativos

Em 2010, Herb Sutter defendia o uso de objetos ativos em vez de fios nus em um artigo [http://www.drdobbs.com/parallel/prefer-using-active-objects-instead-of-n/225700095] no Dr. Dobb. Aqui está uma versão do C ++ 11: class Active { public: ...

1 a resposta

Por que o auxiliar std :: tuple retorna a referência rvalue em vez de value

Se você olhar paraget, a função auxiliar parastd::tuple, você notará a seguinte sobrecarga: template< std::size_t I, class... Types > constexpr std::tuple_element_t<I, tuple<Types...> >&& get( tuple<Types...>&& t );Em outras palavras, ele ...

1 a resposta

Por que as classes de contêiner do Qt não permitem tipos de elementos móveis e não copiáveis?

As classes de contêiner QtQList<T>, QVector<T> etc. exigem que seus tipos de elementos sejam copiáveis. Desde o C ++ 11, os contêineres STL exigem que seu tipo de elemento seja apenas copiável ou móvel. Por que os contêineres Qt não suportam ...

1 a resposta

Um destruidor virtual padrão impede operações de movimentação geradas pelo compilador?

Inspirado no postPor que o destruidor desativa a geração de métodos de movimentação implícitos? [https://stackoverflow.com/questions/33932824/why-destructor-disabling-the-generation-of-implicit-move-functions] , Fiquei pensando se o mesmo se ...