Perguntas com a marcação «c++11»

130
Pool de threads em C ++ 11

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

129
Por que o std :: shared_ptr <void> funciona

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

128
operador de seta (->) no cabeçalho da funçã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...

127
Quando tornar um tipo não móvel no C ++ 11?

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

124
1.0 é uma saída válida de std :: generate_canonical?

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

121
erro: uso de função excluída

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

120
Como funciona o std :: tie?

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