Articles of c ++ c ++ 11

const vs constexpr su variabili

C’è una differenza tra le seguenti definizioni? const double PI = 3.141592653589793; constexpr double PI = 3.141592653589793; In caso contrario, quale stile è preferito in C ++ 11?

“Int size = 10;” produce un’espressione costante?

Il seguente codice compila sotto gcc 4.8 e Clang 3.2: int main() { int size = 10; int arr[size]; } 8.3.4 / 1 dello standard C ++ afferma che la dimensione di un array deve essere un’espressione costante integrale, che non sembra essere la dimensione. Si tratta di un bug in entrambi i compilatori o […]

Utilizzo di oggetti generici std :: function con funzioni membro in una class

Per una class voglio memorizzare alcuni puntatori di funzioni alle funzioni membro della stessa class in una map memorizza gli oggetti std::function . Ma non riesco proprio all’inizio con questo codice: class Foo { public: void doSomething() {} void bindFunction() { // ERROR std::function f = &Foo::doSomething; } }; Ricevo l’ error C2064: term does […]

Come emulare l’inizializzazione dell’array C “int arr = {e1, e2, e3, …}” comportamento con std :: array?

(Nota: questa domanda riguarda non dover specificare il numero di elementi e consentire comunque l’inizializzazione diretta dei tipi nidificati). Questa domanda discute gli usi lasciati per un array C come int arr[20]; . Sulla sua risposta , @James Kanze mostra una delle ultime roccaforti di array C, le sue caratteristiche di inizializzazione uniche: int arr[] […]

Ottimizzazione di un “while (1);” in C ++ 0x

Aggiornato, vedi sotto! Ho sentito e letto che C ++ 0x consente a un compilatore di stampare “Ciao” per il seguente frammento #include int main() { while(1) ; std::cout << "Hello" << std::endl; } Apparentemente ha qualcosa a che fare con i thread e le capacità di ottimizzazione. Mi sembra che questo possa sorprendere molte […]

Come posso passare un argomento unique_ptr a un costruttore o una funzione?

Sono nuovo per spostare la semantica in C ++ 11 e non conosco molto bene come gestire i parametri unique_ptr in costruttori o funzioni. Considera questa class riferendosi a se stessa: #include class Base { public: typedef unique_ptr UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void setNext(Base::UPtr n) { next = std::move(n); } protected : Base::UPtr […]

È ansible stampare il tipo di una variabile in C ++ standard?

Per esempio: int a = 12; cout << typeof(a) << endl; Uscita prevista: int

Perché dovrei usare un puntatore piuttosto che l’object stesso?

Vengo da uno sfondo Java e ho iniziato a lavorare con gli oggetti in C ++. Ma una cosa che mi è venuta in mente è che spesso le persone usano puntatori agli oggetti piuttosto che agli oggetti stessi, ad esempio questa dichiarazione: Object *myObject = new Object; piuttosto che: Object myObject; O invece di […]