C ++ 11 è il nome dello standard C ++, approvato nel 2011. Sostituisce il precedente standard C ++ 03, aggiungendo varie modifiche e correzioni al linguaggio di base e una libreria standard migliorata ed estesa.
Data una funzione molto banale, int transform(int val) { return (val + 7) / 8; } Dovrebbe essere molto ovvio che è facile trasformare questa funzione in una constexprfunzione, permettendomi di usarla durante la definizione delle constexprvariabili, in questo modo: constexpr int transform(int val) { return (val + 7) / …
Di recente mi chiedevo perché la parola chiave è autostata scelta in C ++ 11 per contrassegnare una variabile il cui tipo deve essere dedotto dal compilatore, come in auto x = 1; Da var sembra più comune in altri linguaggi di programmazione (ad es. C #, Scala, JavaScript) e …
Quali sono i pro / contro nell'usare la autoparola chiave, specialmente in per i loop? for(std::vector<T>::iterator it = x.begin(); it != x.end(); it++ ) { it->something(); } for(std::map<T>::iterator it = x.begin(); it != x.end(); it++ ) { it->second->something(); } for(auto it = x.begin(); it != x.end(); it++ ) { it->?? …
"L'ottimizzazione precoce è la radice di tutti i mali" Penso che possiamo essere tutti d'accordo. E faccio del mio meglio per evitare di farlo. Ma recentemente mi sono chiesto quale sia la pratica del passaggio dei parametri per const Reference anziché per Value . Mi è stato insegnato / appreso …
Chiuso. Questa domanda è fuori tema . Al momento non accetta risposte. Vuoi migliorare questa domanda? Aggiorna la domanda in modo che sia in argomento per Software Engineering Stack Exchange. Chiuso 4 anni fa . Scrivevo ampiamente C ++ tra 8 e 10 anni fa. Da allora sono passato a …
Lavoro quasi esclusivamente in C ++ 11/14, e di solito mi arrabbio quando vedo codice come questo: std::int64_t mArray; mArray |= someMask << 1; Questo è solo un esempio; Sto parlando di manipolazione saggia in generale. In C ++, c'è davvero qualche punto? Quanto sopra è sconvolgente e soggetto a …
Il seguente codice sembra piuttosto innocuo a prima vista. Un utente utilizza la funzione bar()per interagire con alcune funzionalità della libreria. (Questo potrebbe anche aver funzionato per molto tempo da quando ha bar()restituito un riferimento a un valore non temporaneo o simile.) Ora tuttavia sta semplicemente restituendo una nuova istanza …
So che questa è una pratica dibattuta, ma supponiamo che questa sia l'opzione migliore per me. Mi chiedo quale sia la tecnica effettiva per farlo. L'approccio che vedo è questo: 1) Fai una classe di amici quella della classe che è il metodo che voglio testare. 2) Nella classe friend, …
Guardando questo articolo sulla sicurezza della concorrenza di Rust: http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html Mi chiedevo quante di queste idee possano essere realizzate in C ++ 11 (o più recenti). In particolare, posso creare una classe proprietario che trasferisce la proprietà a qualsiasi metodo a cui può essere passata? Sembra che C ++ abbia …
Di recente ho incontrato la seguente situazione. class A{ public: void calculate(T inputs); } In primo luogo, Arappresenta un oggetto nel mondo fisico, che è un argomento forte per non dividere la classe. Ora, calculate()risulta essere una funzione piuttosto lunga e complicata. Percepisco tre possibili strutture per questo: scrivilo come …
Quando ho imparato il C ++ molto tempo fa, mi è stato fortemente enfatizzato che parte del punto del C ++ è che, proprio come i loop hanno "loop-invarianti", anche le classi hanno invarianti associati alla vita dell'oggetto - cose che dovrebbero essere vere per tutto il tempo in cui …
La maggior parte dei linguaggi di programmazione funzionale (ad esempio Common Lisp, Scheme / Racket, Clojure, Haskell, Scala, OCaml, SML) supportano alcune funzioni comuni di ordine superiore delle liste, come ad esempio map, filter, takeWhile, dropWhile, foldl, foldr(si veda ad esempio Common Lisp, Scheme / Racket, Clojure: foglio di riferimento …
Stiamo testando una libreria in C ++ 11 (ovvero, -std=c++11). La libreria utilizza auto_ptre questo modello: Foo* GetFoo() { autoptr<Foo> ptr(new Foo); // Initialize Foo ptr->Initialize(...); // Now configure remaining attributes ptr->SomeSetting(...); return ptr.release(); } C ++ 11 obsoleto auto_ptr, quindi vogliamo allontanarci da esso. Tuttavia, il codice supporta sia …
Lavoro su una grande applicazione software che deve essere eseguita su più piattaforme. Alcune di queste piattaforme supportano alcune funzionalità di C ++ 11 (ad esempio MSVS 2010) e altre non supportano alcuna (ad esempio GCC 4.3.x). Mi aspetto che questa situazione continui per diversi anni (la mia ipotesi migliore: …
I compilatori C ++ più vecchi (ad es. VS2008 e gcc3.4) potrebbero collegarsi con librerie esterne scritte in C ++ 11? Il mio pensiero è che i file .lib C ++ 11 siano solo byte code in questa fase, e non dovrebbe disturbare i compilatori più vecchi come è stato …
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.