por exemplo: Beta_ab&& Beta::toAB() const { return move(Beta_ab(1,
por exemplo: Beta_ab&& Beta::toAB() const { return move(Beta_ab(1,
Eu tenho uma classe com um membro unique_ptr. class Foo { private: std::unique_ptr<Bar> bar; ... }; A barra é uma classe de terceiros que possui uma função create () e uma função destroy (). Se eu quisesse usar um std::unique_ptrcom ele em uma função autônoma, eu poderia fazer: void...
Quais são as diferenças entre -std=c++11e -std=gnu++11como parâmetro de compilação para gcc e clang? A mesma pergunta com c99e gnu99? Eu sei sobre os padrões C ++ e C, são as diferenças nos parâmetros que me interessam. Li em algum lugar que isso tem a ver com algumas extensões, mas não está claro...
Estou confuso com a descrição de thread_localem C ++ 11. Pelo que entendi, cada thread possui uma cópia exclusiva de variáveis locais em uma função. As variáveis globais / estáticas podem ser acessadas por todos os threads (possivelmente acesso sincronizado usando bloqueios). E as...
Tem std::make_uniquealgum benefício em eficiência como std::make_shared? Comparado à construção manual std::unique_ptr: std::make_unique<int>(1); // vs std::unique_ptr<int>(new
Questões relevantes : Sobre o C ++ 11: C ++ 11: std :: thread em pool? O async (launch :: async) no C ++ 11 tornará obsoletos os pools de threads para evitar a criação cara de threads? Sobre o Boost: C ++ boost thread reutilizando threads boost :: thread e criando um pool deles! Como...
Encontrei algum código usando std :: shared_ptr para executar uma limpeza arbitrária no desligamento. No começo, achei que esse código não funcionaria, mas tentei o seguinte: #include <memory> #include <iostream> #include <vector> class test { public: test() { std::cout...
A std::move(x)função C ++ 11 realmente não move nada. É apenas um lançamento para o valor r. Por que isso foi feito? Isso não é
Me deparei com o seguinte código: template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) { return a+b; } Há uma coisa que não consigo entender: Onde eu poderia descobrir o que o operador de seta ( ->) significa no cabeçalho da função? Eu acho que, logicamente, o...
Sei o que são functores e quando usá-los com stdalgoritmos, mas não entendi o que o Stroustrup diz sobre eles no FAQ do C ++ 11 . Alguém pode explicar o que std::binde std::functionsão, quando eles devem ser usados, e dar alguns exemplos para
Fiquei surpreso que isso não tenha aparecido nos meus resultados de pesquisa, pensei que alguém teria perguntado isso antes, dada a utilidade da semântica de movimento no C ++ 11: Quando tenho que (ou é uma boa idéia para mim) tornar uma classe não móvel no C ++ 11? ( Outros motivos que não...
No operador de atribuição de uma classe, você geralmente precisa verificar se o objeto que está sendo atribuído é o objeto de chamada para não estragar tudo: Class& Class::operator=(const Class& rhs) { if (this != &rhs) { // do the assignment } return *this; } Você precisa da...
auto foo = "You're using g++!"; auto compiler_detector = [foo](auto foo) { std::puts(foo); }; compiler_detector("You're using clang++!"); clang ++ 3.6.0 e uma impressão mais recente "Você está usando o clang ++!" e avise que a captura foo não está sendo usada. g ++ 4.9.0 e mais recente, imprima...
Eu sempre pensei que números aleatórios ficariam entre zero e um, sem1 , ou seja, são números do intervalo semiaberto [0,1). A documentação em cppreference.com de std::generate_canonicalconfirma isso. No entanto, quando executo o seguinte programa: #include <iostream> #include...
Quando eu uso [=]para indicar que gostaria que todas as variáveis locais fossem capturadas por valor em um lambda, isso resultaria em todas as variáveis locais na função sendo copiadas ou apenas em todas as variáveis locais usadas pelo lambda ? Então, por exemplo, se eu...
Recentemente, deparei-me com uma estranha desoptimização (ou melhor, perdi uma oportunidade de otimização). Considere esta função para descompactar com eficiência matrizes de números inteiros de 3 bits a números inteiros de 8 bits. Descompacta 16 ints em cada iteração de loop: void...
Fechado . Esta pergunta é baseada em opinião . Atualmente não está aceitando respostas. Quer melhorar esta questão? Atualize a pergunta para que ela possa ser respondida com fatos e citações editando este post . Fechado há 2 anos . Melhore esta...
Tenho trabalhado em alguns códigos C ++ que um amigo escreveu e recebo o seguinte erro que nunca vi antes ao compilar com gcc4.6: error: use of deleted function ‘GameFSM_<std::array<C, 2ul> >::hdealt::hdealt()’ is implicitly deleted because the default definition would be...
Eu usei std::tiesem pensar muito nisso. Funciona, então acabei de aceitar que: auto test() { int a, b; std::tie(a, b) = std::make_tuple(2, 3); // a is now 2, b is now 3 return a + b; // 5 } Mas como funciona essa magia negra ? Como um temporário criado pela std::tiemudança ae b? Acho isso...
Você poderia dar um exemplo em que static_assert(...)('C ++ 11') resolveria o problema em mãos elegantemente? Estou familiarizado com o tempo de execução assert(...). Quando devo preferir em static_assert(...)vez de regular assert(...)? Além disso, boostexiste algo chamado BOOST_STATIC_ASSERT, é...