Se leggi il codice come auto&& var = foo(); dove fooè una funzione che ritorna per valore di tipo T. Quindi varè un valore di tipo rvalue riferimento a T. Ma cosa implica questo var? Significa che ci è permesso rubare le risorse di var? Ci sono situazioni ragionevoli in …
Il titolo è piuttosto auto-descrittivo. Ho scaricato Qt Creator 2.7.0 e sto cercando di compilare un codice C ++ 11 di base: int my_array[5] = {1, 2, 3, 4, 5}; for(int &x : my_array) { x *= 2; } Ricevo il seguente errore: range based for loops are not allowed …
È possibile catturare per riferimento const in un'espressione lambda? Voglio che il compito indicato di seguito fallisca, ad esempio: #include <cstdlib> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { string strings[] = { "hello", "world" }; static const size_t num_strings = sizeof(strings)/sizeof(strings[0]); string best_string = "foo"; …
Scott Meyers ha pubblicato il contenuto e lo stato del suo prossimo libro EC ++ 11. Ha scritto che un articolo del libro potrebbe essere "Evita le std::enable_iffirme delle funzioni" . std::enable_if può essere utilizzato come argomento di funzione, come tipo restituito o come modello di classe o parametro di …
Se dichiaro una classe di base (o classe di interfaccia) e specifico un valore predefinito per uno o più dei suoi parametri, le classi derivate devono specificare gli stessi valori predefiniti e, in caso contrario, quali valori predefiniti si manifesteranno nelle classi derivate? Addendum: Sono anche interessato a come questo …
Questo pezzo di codice concettualmente fa la stessa cosa per i tre puntatori (inizializzazione sicura del puntatore): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; E quindi, quali sono i vantaggi di assegnare i puntatori nullptrrispetto all'assegnazione dei valori NULLo 0?
Lo standard C ++ 11 (ISO / IEC 14882: 2011) dice in § C.1.1: char* p = "abc"; // valid in C, invalid in C++ Per il C ++ è OK come puntatore a un String Literal è dannoso poiché qualsiasi tentativo di modificarlo porta a un arresto anomalo. Ma …
Grazie a C ++ 11 abbiamo ricevuto la std::functionfamiglia di wrapper functor. Sfortunatamente, continuo a sentire solo cose negative su queste nuove aggiunte. Il più popolare è che sono orribilmente lenti. L'ho provato e fanno davvero schifo rispetto ai modelli. #include <iostream> #include <functional> #include <string> #include <chrono> template <typename …
L'ho visto qui: Move Constructor chiama Move Costruttore di classe base Qualcuno potrebbe spiegare: la differenza tra std::movee std::forward, preferibilmente con alcuni esempi di codice? Come pensarci facilmente e quando usare quale
Sto riscontrando problemi nel comprendere l'utilizzo dei puntatori intelligenti come membri della classe in C ++ 11. Ho letto molto sui puntatori intelligenti e penso di capire come unique_ptre shared_ptr/ o weak_ptrlavorare in generale. Quello che non capisco è il reale utilizzo. Sembra che tutti raccomandino di usarlo unique_ptrcome modo …
Come acquisisco per spostamento (noto anche come riferimento rvalue) in un lambda C ++ 11? Sto cercando di scrivere qualcosa del genere: std::unique_ptr<int> myPointer(new int); std::function<void(void)> example = [std::move(myPointer)]{ *myPointer = 4; };
Sto cercando di ottenere un semplice esempio per capire come utilizzare std::enable_if. Dopo aver letto questa risposta , ho pensato che non sarebbe stato troppo difficile trovare un semplice esempio. Voglio usare std::enable_ifper scegliere tra due funzioni membro e consentire l'utilizzo solo di una di esse. Sfortunatamente, quanto segue non …
C ++ 0x mostra un esempio di utilizzo std::forward: template<class T> void foo(T&& arg) { bar(std::forward<T>(arg)); } Quando è vantaggioso da usare std::forward, sempre? Inoltre, deve essere utilizzato &&nella dichiarazione dei parametri, è valido in tutti i casi? Pensavo che dovessi passare dei provvisori a una funzione se la funzione …
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.