Articles of c ++ 11

c ++ {* this} entre accolades

Le code suivant comstack bien: g++ -std=c++11 test.cpp -Wall -Wextra -Wfatal-errors && ./a.out Cependant, si je supprime les accolades de {*this} et que je les utilise à la place, je ferai face à une erreur: erreur: utilisation de la fonction supprimée ‘Obj :: Position :: Position (Obj :: Position &&)’ Quelle est la différence entre […]

Exceptions avec Unicode quoi ()

Ou “comment les Russes jettent-ils des exceptions?” La définition de std :: exception est la suivante: namespace std { class exception { public: exception() throw(); exception(const exception&) throw(); exception& operator=(const exception&) throw(); virtual ~exception() throw(); virtual const char* what() const throw(); }; } Une école de pensée populaire pour concevoir des hiérarchies d’exception consiste à […]

C ++ terminé appelé sans exception active

Je reçois une erreur C ++ avec le threading: terminate called without an active exception Aborted Voici le code: #include #include #include #include template class blocking_stream { public: blocking_stream(size_t max_buffer_size_) : max_buffer_size(max_buffer_size_) { } //PUSH data into the buffer blocking_stream &operator<<(TYPE &other) { std::unique_lock mtx_lock(mtx); while(buffer.size()>=max_buffer_size) stop_if_full.wait(mtx_lock); buffer.push(std::move(other)); mtx_lock.unlock(); stop_if_empty.notify_one(); return *this; } //POP data […]

Obtenir “type de source n’est pas polymorphe” lors de la tentative d’utilisation de dynamic_cast

struct A {}; struct B : A {}; int main() { A* a = new B(); B* b = dynamic_cast(a); } donne: ne peut pas dynamic_cast ‘a’ (de type ‘struct A *’) pour taper ‘struct B *’ (le type de source n’est pas polymorphe) Comment puis-je faire A polymorphe? Je veux le lancer en toute […]

Pourquoi l’utilisation d’un object temporaire dans l’initialiseur basé sur une plage entraîne-t-elle un blocage?

Pourquoi le code suivant se bloque-t-il sur Visual Studio et GCC? Pour que cela tombe en panne, il faut utiliser une boucle basée sur la plage, std :: map, std :: ssortingng et une référence à la chaîne. Si j’enlève l’un d’entre eux, cela fonctionnera. #include #include #include using namespace std; struct S { map […]

C ++ Qt – Comment append “-std = c ++ 11” au makefile généré par qmake?

Je développe un programme dans Qt. Son makefile est généré automatiquement à partir du fichier .pro. J’ai besoin d’utiliser du code qui nécessite que l’indicateur -std = c ++ 11 soit configuré pour g ++. Où dans .pro dois-je append ce drapeau? (le fait de ne modifier que le Makefile ne fonctionnera pas car il […]

Spécificateurs de format pour uint8_t, uint16_t,…?

Si j’ai une variable entière, je peux utiliser sscanf comme indiqué ci-dessous en utilisant le spécificateur de format% d. sscanf (line, “Value of integer: %d\n”, &my_integer); Où puis-je trouver des spécificateurs de format pour uint8_t , uint16_t , uint32_t et uint64_t ? uint64_t a probablement% lu.

C ++ 11 basé sur la plage pour les boucles sans variable de boucle

En C ++, je dois répéter un certain nombre de fois, mais je n’ai pas besoin d’une variable d’itération. Par exemple: for( int x=0; x<10; ++x ) { /* code goes here, i do not reference "x" in this code */ } Je me rends compte que je peux le faire en remplaçant “code va […]

Comment fait-on pour réduire un std :: shared_ptr?

Considérer: struct SomethingThatsABase { virtual bool IsChildOne() const { return false; } virtual bool IsChildTwo() const { return false; } }; struct ChildOne : public SomethingThatsABase { virtual bool IsChildOne() const { return true; } }; struct ChildTwo : public SomethingThatsABase { virtual bool IsChildTwo() const { return true; } }; void SomeClientExpectingAChildOne(std::shared_ptr const& ptrOne) […]

std :: méthode d’appel de classe de classe

Duplication possible: Démarrer le fil avec la fonction membre J’ai un petit cours: class Test { public: void runMultiThread(); private: int calculate(int from, int to); } Comment il est possible d’exécuter la méthode calculate avec deux ensembles différents de parameters (par exemple, calculate(0,10) , calculate(11,20) ) dans deux threads de la méthode runMultiThread() ? PS […]