Resultados da pesquisa a pedido "move-constructor"

2 a resposta

mover construtor e copiar construtor em C ++

Meu entendimento é que um construtor de movimentação é chamado se existir quando retornarmos um objeto local de uma função. No entanto, tive uma situação em que o construtor de cópia foi chamado, como mostra o exemplo a seguir na funçãofoo2(). ...

1 a resposta

Herança de copiar e mover construtores da classe base usando a palavra-chave "using"

Eu quero herdar o construtor de cópia da classe base usandousing palavra-chave: #include <iostream> struct A { A() = default; A(const A &) { std::cerr << __PRETTY_FUNCTION__ << std::endl; } A( A &&) { std::cerr << __PRETTY_FUNCTION__ << ...

1 a resposta

Por que o C ++ não move referências de rvalue de construção por padrão? [duplicado

Esta pergunta já tem uma resposta aqui: Referência de valor é tratada como um valor L [/questions/28483250/rvalue-reference-is-treated-as-an-lvalue] 4 respostas construtor de referência @value é chamado em vez do construtor de ...

7 a resposta

(Por que) um construtor de movimento ou operador de atribuição de movimento deve limpar seu argumento?

Um exemplo de implementação de construtor de movimentação de um curso de C ++ que estou fazendo é mais ou menos assim: /// Move constructor Motorcycle::Motorcycle(Motorcycle&& ori) : m_wheels(std::move(ori.m_wheels)), ...

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

3 a resposta

Entendendo `std :: is_move_constructible`

Tipos sem um construtor de movimentação, mas com um construtor de cópia que aceitaconst T& argumentos, satisfazerstd::is_move_constructible. Por exemplo, no seguinte código: #include <type_traits> struct T { T(const T&) {} //T(T&&) = delete; }; ...

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

5 a resposta

Como devo lidar com mutexes em tipos móveis em C ++?

Por design,std::mutex não é móvel nem cópia-construtível. Isso significa que uma classeA, que possui um mutex, não receberá um construtor de movimentação padrão. Como eu faria esse tipoA móvel de maneira segura para threads?

2 a resposta

A regra de não incorporar std :: string em exceções ainda é válida com os construtores de movimentação?

Ouvi há algum tempo que não deveria criar classes de exceção que teriam campos destd::string tipo. Isso é o queO site Boost diz [http://www.boost.org/community/error_handling.html]. A lógica é questd::string O construtor de cópias pode lançar uma ...

3 a resposta

Por que precisamos definir a referência rvalue como null no construtor move?

//code from https://skillsmatter.com/skillscasts/2188-move-semanticsperfect-forwarding-and-rvalue-references class Widget { public: Widget(Widget&& rhs) : pds(rhs.pds) // take source’s value { rhs.pds = nullptr; // why?? } private: struct ...