Resultados da pesquisa a pedido "move-constructor"

4 a resposta

Referência de rvalor do C ++ 11 que chama o construtor de cópia também

Eu tenho testado alguns recursos do C ++ 11 de alguns. Me deparei com referências de valor r e movo construtores. Eu implementei meu primeiro construtor de movimento, aqui está: #include <iostream> #include <vector> using namespace std; class ...

3 a resposta

Construtor de movimento explícito

Tentando compilar o seguinte código: struct Foo { explicit Foo ( void ) { } explicit Foo ( Foo&& rhs ) { } }; Foo bar ( void ) { return Foo(); }Obtendo o seguinte erro: chamada para o construtor de cópias excluído implicitamente de 'Foo' Bem, ...

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

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

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

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

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

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

2 a resposta

Os construtores de movimentação são produzidos automaticament

Tenho uma classe grande segurando muitos contêineres ST O compilador fará automaticamente um construtor de movimentação que moverá esses contêineres para o destino ou eu tenho que criar a minh