Se ho la seguente dichiarazione: float a = 3.0 ; è un errore? Ho letto in un libro che 3.0è un doublevalore e che devo specificarlo come float a = 3.0f. È così?
Nel seguente C++programma, la modifica di un membro di dati statici da una constfunzione funziona correttamente: class A { public: static int a; // static data member void set() const { a = 10; } }; Ma la modifica di un membro dati non statico da una constfunzione non funziona: …
Sto valutando l'utilizzo di alcune funzionalità C ++ 11 (come autoad esempio) in alcuni progetti multipiattaforma (Windows + Mac). Su Windows, Visual Studio supporta parti del prossimo standard C ++ 11 che mi consentirebbero di semplificare parti della base di codice, quindi naturalmente sarei interessato a iniziare a utilizzare queste …
C ++ 0x renderà il codice seguente e un codice simile mal formato, perché richiede una cosiddetta conversione di restringimento di a doublein a int. int a[] = { 1.0 }; Mi chiedo se questo tipo di inizializzazione sia utilizzato molto nel codice del mondo reale. Quanti codici verranno interrotti …
Capisco che volatileinformi il compilatore che il valore può essere modificato, ma per realizzare questa funzionalità, il compilatore deve introdurre una barriera di memoria per farlo funzionare? A quanto mi risulta, la sequenza di operazioni sugli oggetti volatili non può essere riordinata e deve essere preservata. Questo sembra implicare che …
È possibile determinare la cardinalità di un c ++ enum class: enum class Example { A, B, C, D, E }; Ho provato a usare sizeof, tuttavia, restituisce la dimensione di un elemento enum. sizeof(Example); // Returns 4 (on my architecture) Esiste un modo standard per ottenere la cardinalità (5 …
Come posso verificare se un std::threadè ancora in esecuzione (in modo indipendente dalla piattaforma)? Manca un timed_join()metodo e joinable()non è pensato per questo. Ho pensato di bloccare un mutex con a std::lock_guardnel thread e di utilizzare il try_lock()metodo del mutex per determinare se è ancora bloccato (il thread è in …
C'è una differenza tra questi due segmenti di codice: void f() { thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } e void f() { static thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } Backstory: originariamente avevo un vettore STATICO V …
A seguito di una domanda correlata , vorrei chiedere informazioni sui nuovi tipi di caratteri e stringhe in C ++ 11. Sembra che ora abbiamo quattro tipi di caratteri e cinque tipi di stringhe letterali. I tipi di carattere: char a = '\x30'; // character, no semantics wchar_t b = …
Al momento, posso eseguire loop basati su intervalli solo con questo: for (auto& value : values) Ma a volte ho bisogno di un iteratore per il valore, invece di un riferimento (per qualsiasi motivo). Esiste un metodo senza dover passare attraverso l'intero vettore confrontando i valori?
Stavo solo giocando con g ++ 4.7 (una delle istantanee successive) con -std = c ++ 11 abilitato. Ho provato a compilare parte della mia base di codice esistente e un caso che non è riuscito in qualche modo mi confonde. Apprezzerei se qualcuno potesse spiegare cosa sta succedendo. Ecco …
Qual è il modo corretto per riutilizzare un contenitore spostato? std::vector<int> container; container.push_back(1); auto container2 = std::move(container); // ver1: Do nothing //container2.clear(); // ver2: "Reset" container = std::vector<int>() // ver3: Reinitialize container.push_back(2); assert(container.size() == 1 && container.front() == 2); Da quello che ho letto nella bozza standard C ++ 0x; …
Sono un principiante nella programmazione C ++. Oggi mi imbatto in un nuovo argomento: fortemente digitato enum. Ho studiato un po ', ma fino ad ora non sono in grado di scoprire perché ne abbiamo bisogno ea che cosa serve? Ad esempio se abbiamo: enum xyz{a, b, c}; /*a = …
Sto usando una libreria esterna che ad un certo punto mi dà un puntatore non elaborato a una matrice di numeri interi e dimensioni. Ora vorrei utilizzare std::vectorper accedere e modificare questi valori sul posto, anziché accedervi con puntatori non elaborati. Ecco un esempio articolare che spiega il punto: size_t …
Sto cercando di capire come ottenere l'indirizzo di una funzione lambda all'interno di se stesso. Ecco un codice di esempio: []() { std::cout << "Address of this lambda function is => " << ???? }(); So che posso catturare la lambda in una variabile e stampare l'indirizzo, ma voglio farlo …
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.