Domande taggate «c++11»

Utilizzare questo tag per il codice che deve essere compilato come C ++ 11 (non utilizzando alcuna funzionalità introdotta in C ++ 14 o successive).



2
Il linguaggio sicuro è obsoleto in C ++ 11?
Questa risposta di @R. Martinho Fernandes mostra che il linguaggio del bool di sicurezza è apparentemente deprecato in C ++ 11, in quanto può essere sostituito da un semplice explicit operator bool() const; secondo la citazione standard nella risposta §4 [conv] p3: Un'espressione e può essere implicitamente convertita in un …


4
È possibile usare std :: string in un constexpr?
Utilizzando C ++ 11, Ubuntu 14.04, toolchain predefinito GCC . Questo codice ha esito negativo: constexpr std::string constString = "constString"; errore: il tipo 'const string {aka const std :: basic_string}' della variabile constexpr 'constString' non è letterale ... perché ... 'std :: basic_string' ha un distruttore non banale È possibile …

3
Che cos'è esattamente std :: atomic?
Capisco che std::atomic<>è un oggetto atomico. Ma atomico fino a che punto? Secondo me un'operazione può essere atomica. Cosa si intende esattamente per rendere atomico un oggetto? Ad esempio, se ci sono due thread che eseguono contemporaneamente il seguente codice: a = a + 12; Quindi l'intera operazione (diciamo add_twelve_to(int)) …

2
shared_ptr a un array: dovrebbe essere usato?
Solo una piccola domanda riguardante shared_ptr. È buona norma utilizzare il shared_ptrpuntamento a un array? Per esempio, shared_ptr<int> sp(new int[10]); Se no, allora perché no? Uno dei motivi di cui sono già a conoscenza è che non è possibile aumentare / diminuire il shared_ptr. Quindi non può essere usato come …
172 c++  c++11  shared-ptr 

2
Perché lambdas può essere ottimizzato meglio dal compilatore rispetto alle semplici funzioni?
Nel suo libro The C++ Standard Library (Second Edition)Nicolai Josuttis afferma che lambdas può essere ottimizzato meglio dal compilatore rispetto alle semplici funzioni. Inoltre, i compilatori C ++ ottimizzano le lambda meglio di quanto facciano le normali funzioni. (Pagina 213) Perché? Ho pensato che quando si trattava di sottolineare non …




6
Utilizzo di oggetti generici std :: function con funzioni membro in una classe
Per una classe voglio memorizzare alcuni puntatori di funzione alle funzioni membro della stessa classe in un oggetto di mapmemorizzazione std::function. Ma non riesco proprio all'inizio con questo codice: class Foo { public: void doSomething() {} void bindFunction() { // ERROR std::function<void(void)> f = &Foo::doSomething; } }; Ricevo error C2064: …

2
funzione membro scambio pubblico amico
Nella bella risposta al linguaggio copia-e-scambia c'è un pezzo di codice che mi serve un po 'di aiuto: class dumb_array { public: // ... friend void swap(dumb_array& first, dumb_array& second) // nothrow { using std::swap; swap(first.mSize, second.mSize); swap(first.mArray, second.mArray); } // ... }; e aggiunge una nota Ci sono altre …

3
In che modo “= default” è diverso da “{}” per costruttore e distruttore predefiniti?
Inizialmente ho pubblicato questo come una domanda solo sui distruttori, ma ora sto aggiungendo considerazione sul costruttore predefinito. Ecco la domanda originale: Se voglio dare alla mia classe un distruttore virtuale, ma altrimenti uguale a quello che genererebbe il compilatore, posso usare =default: class Widget { public: virtual ~Widget() = …


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.