Questions marquées «c++»

C ++ est un langage de programmation à usage général. Il a été initialement conçu comme une extension de C et a une syntaxe similaire, mais c'est maintenant un langage complètement différent. Utilisez cette balise pour les questions sur le code (à compiler) avec un compilateur C ++. Utilisez une balise spécifique à la version pour les questions liées à une révision standard spécifique [C ++ 11], [C ++ 14], [C ++ 17] ou [C ++ 20], etc.


3
Comment vérifier correctement si std :: function est vide en C ++ 11?
Je me demandais comment vérifier correctement si un std::functionest vide. Prenons cet exemple: class Test { std::function<void(int a)> eventFunc; void registerEvent(std::function<void(int a)> e) { eventFunc = e; } void doSomething() { ... eventFunc(42); } }; Ce code se compile très bien dans MSVC mais si j'appelle doSomething()sans initialiser eventFuncle code …

12
Itérer le vecteur C ++ de la fin au début
Est-il possible d'itérer un vecteur de la fin au début? for (vector<my_class>::iterator i = my_vector.end(); i != my_vector.begin(); /* ?! */ ) { } Ou est-ce seulement possible avec quelque chose comme ça: for (int i = my_vector.size() - 1; i >= 0; --i) { }
96 c++  vector  iterator 

4
Remplacerait '::' par '. 'créer des ambiguïtés en C ++?
En C ++, l'opérateur ::est utilisé pour accéder aux classes, fonctions et variables dans un espace de noms ou une classe. Si la spécification de langage utilisée .au lieu de ::dans ces cas aussi, comme lors de l'accès aux variables / méthodes d'instance d'un objet, cela provoquerait-il des ambiguïtés possibles …





3
Que signifie le rinçage du tampon?
J'apprends le C ++ et j'ai trouvé quelque chose que je ne comprends pas: Les tampons de sortie peuvent être explicitement vidés pour forcer l'écriture du tampon. Par défaut, la lecture des cinvidages cout; coutest également vidé lorsque le programme se termine normalement. Donc vider le tampon (par exemple un …
95 c++  input  buffer  output  flush 

5
Puis-je lister un vecteur de type déplacement uniquement?
Si je passe le code suivant via mon instantané GCC 4.7, il essaie de copier le unique_ptrs dans le vecteur. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Évidemment, cela ne peut pas fonctionner car il std::unique_ptrn'est pas copiable: …



6
L'opérateur tilde en C
J'ai vu l'opérateur tilde utilisé dans l'algorithme de hachage ELF, et je suis curieux de savoir ce qu'il fait. (Le code vient d'Eternally Confused .) unsigned elf_hash ( void *key, int len ) { unsigned char *p = key; unsigned h = 0, g; int i; for ( i = …
95 c++  c  operators 


3
Qu'est-ce qu'une «mémoire stomp»?
Je viens de tomber sur ce billet de blog qui mentionne «la mémoire stomping»: un programme C ++ qui est facilement capable de piétiner la mémoire (quelque chose dont vous n'avez probablement jamais entendu parler si vous êtes né dans un monde de code managé.) Et en fait je n'en …

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.