Resultados da pesquisa a pedido "move-constructor"
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(). ...
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__ << ...
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 ...
(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)), ...
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 ...
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; }; ...
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 ...
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?
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 ...
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 ...