Ho letto e sentito che C ++ 11 supporta Unicode. Alcune domande al riguardo: In che misura la libreria standard C ++ supporta Unicode? Fa std::stringquello che dovrebbe? Come lo uso? Dove sono i potenziali problemi?
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 …
Come rimuovo da una mappa durante l'iterazione? piace: std::map<K, V> map; for(auto i : map) if(needs_removing(i)) // remove it from the map Se lo uso map.eraseinvaliderò gli iteratori
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 …
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)) …
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 …
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 …
Considera il seguente programma: struct ghost { // ghosts like to pretend that they don't exist ghost* operator&() const volatile { return 0; } }; int main() { ghost clyde; ghost* clydes_address = &clyde; // darn; that's not clyde's address :'( } Come ottengo clydel'indirizzo? Sto cercando una soluzione che …
C'è un problema piuttosto sciocco con il numero pi in C e C ++. Per quanto ne so M_PIdefinito in math.hnon è richiesto da nessuno standard. I nuovi standard C ++ hanno introdotto un sacco di complicate matematiche nella libreria standard: funzioni iperboliche std::hermitee std::cyl_bessel_idiversi generatori di numeri casuali e …
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: …
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 …
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() = …
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.