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

Use essa tag para código que deve ser compilado como C ++ 11 (sem usar os recursos introduzidos no C ++ 14 ou posterior).

5
usando modelo externo (C ++ 11)
Figura 1: modelos de função TemplHeader.h template<typename T> void f(); TemplCpp.cpp template<typename T> void f(){ //... } //explicit instantation template void f<T>(); Main.cpp #include "TemplHeader.h" extern template void f<T>(); //is this correct? int main() { f<char>(); return 0; } Esta é a maneira correta de usar extern templateou devo usar …
116 c++  templates  c++11  extern 

4
Evitando a instrução if dentro de um loop for?
Eu tenho uma classe chamada Writerque tem uma função writeVectorassim: void Drawer::writeVector(vector<T> vec, bool index=true) { for (unsigned int i = 0; i < vec.size(); i++) { if (index) { cout << i << "\t"; } cout << vec[i] << "\n"; } } Estou tentando não ter um código duplicado, …








6
Por que podemos usar `std :: move` em um objeto` const`?
Em C ++ 11, podemos escrever este código: struct Cat { Cat(){} }; const Cat cat; std::move(cat); //this is valid in C++11 quando eu chamo std::move, significa que quero mover o objeto, ou seja, vou mudar o objeto. Mover um constobjeto não é razoável, então por que std::movenão restringe esse …
112 c++  c++11 

4
O cout é sincronizado / thread-safe?
Em geral, presumo que os fluxos não estão sincronizados, cabe ao usuário fazer o bloqueio apropriado. No entanto, coisas como coutreceber tratamento especial na biblioteca padrão? Ou seja, se vários threads estiverem gravando, couteles podem corromper o coutobjeto? Eu entendo que, mesmo se sincronizado, você ainda terá uma saída intercalada …
112 c++  gcc  c++11 

20
Como você pode iterar sobre os elementos de uma std :: tuple?
Como posso iterar em uma tupla (usando C ++ 11)? Tentei o seguinte: for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); mas isso não funciona: Erro 1: desculpe, não implementado: não é possível expandir 'Listener ...' em uma lista de argumentos de comprimento fixo. Erro 2: não posso aparecer em uma expressão constante. …

8
Como semear de forma sucinta, portátil e completa o PRNG mt19937?
Parece que vejo muitas respostas em que alguém sugere o uso <random>para gerar números aleatórios, geralmente junto com códigos como este: std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(0, 5); dis(gen); Normalmente, isso substitui algum tipo de "abominação profana", como: srand(time(NULL)); rand()%6; Podemos criticar a maneira antiga argumentando que time(NULL)fornece baixa entropia, …
112 c++  c++11  random 

4
Uma classe enum pode ser convertida no tipo subjacente?
Existe uma maneira de converter um enum classcampo para o tipo subjacente? Achei que seria automático, mas aparentemente não. enum class my_fields : unsigned { field = 1 }; unsigned a = my_fields::field; Essa atribuição está sendo rejeitada pelo GCC. error: cannot convert 'my_fields' to 'unsigned int' in assignment.
112 c++  c++11 


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.