Domande taggate «c++11»

Utilizzare questo tag per il codice che deve essere compilato come C ++ 11 (non utilizzando alcuna funzionalità introdotta in C ++ 14 o successive).

5
utilizzando il modello esterno (C ++ 11)
Figura 1: modelli di funzioni 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; } È questo il modo corretto di utilizzare extern templateo devo usare …
116 c++  templates  c++11  extern 









6
Perché possiamo usare `std :: move` su un oggetto` const`?
In C ++ 11 possiamo scrivere questo codice: struct Cat { Cat(){} }; const Cat cat; std::move(cat); //this is valid in C++11 quando chiamo std::move, significa che voglio spostare l'oggetto, cioè cambierò l'oggetto. Spostare un constoggetto è irragionevole, quindi perché std::movenon limitare questo comportamento? Sarà una trappola in futuro, giusto? …
113 c++  c++11 

4
Cout è sincronizzato / thread-safe?
In generale presumo che i flussi non siano sincronizzati, spetta all'utente eseguire il blocco appropriato. Tuttavia, cose come coutottenere un trattamento speciale nella libreria standard? Cioè, se più thread stanno scrivendo, coutpossono danneggiare l' coutoggetto? Capisco che anche se sincronizzato avresti comunque un output interlacciato casualmente, ma è quell'interlacciamento garantito. …
112 c++  gcc  c++11 

20
Come puoi iterare sugli elementi di una std :: tuple?
Come posso iterare su una tupla (usando C ++ 11)? Ho provato quanto segue: for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); ma questo non funziona: Errore 1: mi dispiace, non implementato: impossibile espandere "Listener ..." in un elenco di argomenti di lunghezza fissa. Errore 2: non posso apparire in un'espressione costante. Quindi, …

8
Come seminare in modo succinto, portatile e completo il PRNG mt19937?
Mi sembra di vedere molte risposte in cui qualcuno suggerisce di utilizzare <random>per generare numeri casuali, di solito insieme a codice come questo: std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(0, 5); dis(gen); Di solito questo sostituisce una sorta di "abominio empio" come: srand(time(NULL)); rand()%6; Potremmo criticare il vecchio modo sostenendo che …
112 c++  c++11  random 

4
È possibile convertire una classe enum nel tipo sottostante?
C'è un modo per convertire un enum classcampo nel tipo sottostante? Ho pensato che sarebbe stato automatico, ma a quanto pare no. enum class my_fields : unsigned { field = 1 }; unsigned a = my_fields::field; Tale incarico è stato rifiutato da GCC. error: cannot convert 'my_fields' to 'unsigned int' …
112 c++  c++11 


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.