Sono rimasto sorpreso dal fatto che ciò non si sia verificato nei miei risultati di ricerca, ho pensato che qualcuno l'avrebbe mai chiesto prima, data l'utilità della semantica di spostamento in C ++ 11: Quando devo (o è una buona idea per me) rendere una classe non mobile in C …
Nell'operatore di assegnazione di una classe, di solito è necessario verificare se l'oggetto assegnato è l'oggetto invocante in modo da non rovinare le cose: Class& Class::operator=(const Class& rhs) { if (this != &rhs) { // do the assignment } return *this; } Hai bisogno della stessa cosa per l'operatore di …
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 versioni successive stampa "Stai usando clang ++!" e avvisa che la cattura foo non è stata utilizzata. g ++ 4.9.0 e versioni successive stampa "Stai usando g ++!" e …
Ho sempre pensato che i numeri casuali si trovassero tra zero e uno, senza1 , cioè sono numeri dell'intervallo semi-aperto [0,1). La documention su cppreference.com di std::generate_canonicalconferma. Tuttavia, quando eseguo il seguente programma: #include <iostream> #include <limits> #include <random> int main() { std::mt19937 rng; std::seed_seq sequence{0, 1, 2, 3, 4, …
Quando uso [=]per indicare che desidero che tutte le variabili locali vengano catturate per valore in un lambda, ciò comporterà la copia di tutte le variabili locali nella funzione o solo di tutte le variabili locali utilizzate da lambda ? Quindi, ad esempio, se ho: vector<int> my_huge_vector(100000); int my_measly_int; some_function([=](int …
Recentemente mi sono imbattuto in una strana deottimizzazione (o meglio un'opportunità di ottimizzazione persa). Considera questa funzione per un efficiente decompressione di array da interi a 3 bit a interi a 8 bit. Decomprime 16 int in ogni iterazione del ciclo: void unpack3bit(uint8_t* target, char* source, int size) { while(size …
Sto lavorando su un codice C ++ scritto da un amico e ricevo il seguente errore che non ho mai visto prima durante la compilazione con gcc4.6: error: use of deleted function ‘GameFSM_<std::array<C, 2ul> >::hdealt::hdealt()’ is implicitly deleted because the default definition would be ill-formed: uninitialized non-static const member ‘const …
Chiuso . Questa domanda è basata sull'opinione . Attualmente non accetta risposte. Vuoi migliorare questa domanda? Aggiorna la domanda in modo che possa essere risolta con fatti e citazioni modificando questo post . Chiuso 2 anni fa . Migliora questa domanda Tener conto di: struct Person { int height; int …
L'ho usato std::tiesenza pensarci troppo. Funziona quindi ho appena accettato che: 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 } Ma come funziona questa magia nera ? Come funziona un temporaneo creato …
So che in C ++ 11 hanno aggiunto la funzionalità per inizializzare una variabile a zero in quanto tale double number = {}; // number = 0 int data{}; // data = 0 Esiste un modo simile per inizializzare un std::vectordi una lunghezza fissa su tutti gli zeri?
std::stringAvevo capito che il copy-on-write non è un modo praticabile per implementare un conforming in C ++ 11, ma quando è emerso recentemente in discussione mi sono trovato incapace di supportare direttamente questa affermazione. Ho ragione che C ++ 11 non ammette implementazioni basate su COW std::string? In caso affermativo, …
È vagamente correlato a questa domanda: std :: thread è in pool in C ++ 11? . Sebbene la domanda sia diversa, l'intenzione è la stessa: Domanda 1: ha ancora senso utilizzare pool di thread propri (o di una libreria di terze parti) per evitare la creazione di thread costosi? …
Uso gcc 4.8.1 da http://hpc.sourceforge.net su Mac OSX Mountain Lion. Sto cercando di compilare un programma C ++ che utilizza la to_stringfunzione in <string>. Devo usare la bandiera -std=c++11ogni volta: g++ -std=c++11 -o testcode1 code1.cpp C'è un modo per includere questo flag per impostazione predefinita?
Potresti fare un esempio in cui static_assert(...)('C ++ 11') risolverebbe elegantemente il problema? Conosco il tempo di esecuzione assert(...). Quando dovrei preferire static_assert(...)il normale assert(...)? Inoltre, boostc'è qualcosa chiamato BOOST_STATIC_ASSERT, è lo stesso di static_assert(...)?
È possibile scrivere una funzione, che, quando compilata con un compilatore C, restituirà 0, e quando compilata con un compilatore C ++, restituirà 1 (la banale soluzione con #ifdef __cplusplusnon è interessante). Per esempio: int isCPP() { return sizeof(char) == sizeof 'c'; } Ovviamente, quanto sopra funzionerà solo se sizeof …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.