Articles of c ++ 11

Fazendo um static_assert que um tipo de modelo é outro modelo

Como faço para static_assert assim? Talvez Boost suporta, se não C ++ ou novos resources em C ++ 11? template struct foo {}; template struct bar { static_assert(FooType is indeed foo for some T,”failure”); //how? };

Qual é o sentido de padronizar funções no C ++ 11?

O C ++ 11 adiciona a capacidade de dizer ao compilador para criar uma implementação padrão de qualquer uma das funções de membro especiais . Embora eu possa ver o valor de excluir uma function, onde está o valor de padronizar explicitamente uma function? Apenas deixe em branco e o compilador fará de qualquer maneira. […]

Eu tenho que usar atomic para a variável bool “exit”?

Eu preciso definir um sinalizador para outro segmento para sair. Esse outro segmento verifica o sinalizador de saída de tempos em tempos. Eu tenho que usar atomic para a bandeira ou apenas um bool simples é suficiente e por que (com um exemplo do que exatamente pode dar errado se eu usar bool simples)? #include […]

Como dar prioridade ao thread privilegiado no bloqueio de mutex?

Primeiro de tudo: eu sou completamente um novato em programação mutex / multithread, então desculpe por qualquer erro com antecedência … Eu tenho um programa que executa vários segmentos. Os threads (geralmente um por núcleo cpu) fazem um monte de cálculo e “pensando” e, em seguida, às vezes, eles decidem chamar um método específico (compartilhado) […]

erro para function hash do par de ints

Eu tenho a seguinte class com um membro unordered_map e uma function hash definida para o pair class abc {public : unordered_map < pair , int > rules ; unsigned nodes; unsigned packet ; }; namespace std { template class hash < std::pair >{ public : size_t operator()(const pair &x ) const { size_t h […]

“To_string” não é um membro de “std”?

Ok, então eu tenho tmp.cpp: #include int main() { std::to_string(0); return 0; } Mas quando tento compilar eu recebo: $ g++ tmp.cpp -o tmp tmp.cpp: In function ‘int main()’: tmp.cpp:5:5: error: ‘to_string’ is not a member of ‘std’ std::to_string(0); ^ Estou executando o g ++ versão 4.8.1. Ao contrário de todas as outras referências a […]

Legal para replace o terminador nulo do std :: string?

Em C ++ 11, sabemos que std::string é garantido para ser tanto contíguo quanto terminado em null (ou mais charT() , terminado por charT() , que no caso de char é o caractere nulo 0). Existe essa API C que eu preciso usar que preenche uma string por ponteiro. Ele grava toda a string + […]

Como criar o produto cartesiano de uma lista de tipos?

Eu gostaria de criar o produto cruzado de uma lista de tipos usando modelos variádicos. Aqui está o que eu tenho até agora: #include #include #include template struct type_list {}; template struct type_pair {}; template struct row { typedef type_list<type_pair…> type; }; template struct cross_product { typedef type_list<typename row::type…> type; }; int main() { int […]

desempenho da matriz std :: array vs

Se eu quiser construir uma matriz muito simples como int myArray[3] = {1,2,3}; Devo usar std::array vez disso? std::array a = {{1, 2, 3}}; Quais são as vantagens de usar std :: array sobre os usuais? É mais performático? Apenas mais fácil de manusear para copiar / acessar?

Erro de vinculador C ++ com class static constexpr

Eu estou compilando o seguinte programa simples com g++-4.6.1 –std=c++0x : #include struct S { static constexpr int X = 10; }; int main() { return std::min(S::X, 0); }; Eu recebo o seguinte erro de vinculador: /tmp/ccBj7UBt.o: In function `main’: scratch.cpp:(.text+0x17): undefined reference to `S::X’ collect2: ld returned 1 exit status Eu percebo que membros […]