Pourquoi est-il nécessaire d'avoir std::reference_wrapper? Où doit-il être utilisé? En quoi est-ce différent d'un simple pointeur? Comment ses performances se comparent-elles à un simple pointeur?
Pourquoi est-il nécessaire d'avoir std::reference_wrapper? Où doit-il être utilisé? En quoi est-ce différent d'un simple pointeur? Comment ses performances se comparent-elles à un simple pointeur?
Je suis allé à un entretien d'embauche aujourd'hui et j'ai reçu cette question intéressante. Outre la fuite de mémoire et le fait qu'il n'y ait pas de dtor virtuel, pourquoi ce code plante-t-il? #include <iostream> //besides the obvious mem leak, why does this code crash? class Shape {...
Dans quelles circonstances voudriez-vous utiliser du code de cette nature en C ++? void foo(type *&in) {...} void fii() { type *choochoo; ... foo(choochoo); }
Supposons que j'ai le code suivant: void* my_alloc (size_t size) { return new char [size]; } void my_free (void* ptr) { delete [] ptr; } Est-ce sûr? Ou doit-il ptrêtre casté char*avant la
Supposons, int *p; int a = 100; p = &a; Que fera réellement le code suivant et comment? p++; ++p; ++*p; ++(*p); ++*(p); *p++; (*p)++; *(p)++; *++p; *(++p); Je sais, c'est un peu compliqué en termes de codage, mais je veux savoir ce qui se passera réellement lorsque nous coderons comme ça....
J'ai du mal à voir l'utilité des pointeurs de fonction. Je suppose que cela peut être utile dans certains cas (ils existent, après tout), mais je ne peux pas penser à un cas où il est préférable ou inévitable d'utiliser un pointeur de fonction. Pourriez-vous donner un exemple de bonne utilisation...
Je jouais avec les lambdas C ++ et leur conversion implicite en pointeurs de fonction. Mon exemple de départ les utilisait comme rappel pour la fonction ftw. Cela fonctionne comme prévu. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const...
Disons que j'ai une classe avec une méthode qui renvoie un shared_ptr. Quels sont les avantages et inconvénients possibles du renvoi par référence ou par valeur? Deux indices possibles: Destruction précoce des objets. Si je retourne la shared_ptrréférence by (const), le compteur de référence n'est...
J'essaie de comprendre comment std::unique_ptrfonctionne et pour cela j'ai trouvé ce document. L'auteur part de l'exemple suivant: #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize...
Comment créer un dictionnaire dans lequel je peux stocker des fonctions? Merci. J'ai environ 30+ fonctions qui peuvent être exécutées par l'utilisateur. Je veux pouvoir exécuter la fonction de cette façon: private void functionName(arg1, arg2, arg3) { // code } dictionaryName.add("doSomething",...
Quelle est la meilleure méthode pour passer un shared_ptrd'un type dérivé à une fonction qui prend un shared_ptrd'un type de base? Je passe généralement shared_ptrs par référence pour éviter une copie inutile: int foo(const shared_ptr<bar>& ptr); mais cela ne fonctionne pas si j'essaye...
J'ai récemment décidé que je devais enfin apprendre le C / C ++, et il y a une chose que je ne comprends pas vraiment à propos des pointeurs ou plus précisément de leur définition. Que diriez-vous de ces exemples: int* test; int *test; int * test; int* test,test2; int *test,test2; int *...
J'ai entendu auto_ptrdire qu'il était obsolète dans C ++ 11. Quelle est la raison pour ça? J'aimerais aussi connaître la différence entre auto_ptret shared_ptr.
J'ai déjà lu le terme "gros pointeur" dans plusieurs contextes, mais je ne suis pas sûr de ce qu'il signifie exactement et quand il est utilisé dans Rust. Le pointeur semble être deux fois plus grand qu'un pointeur normal, mais je ne comprends pas pourquoi. Cela semble également avoir quelque...
Dans l'état actuel des choses, cette question ne convient pas à notre format de questions-réponses. Nous nous attendons à ce que les réponses soient étayées par des faits, des références ou une expertise, mais cette question suscitera probablement un débat, des arguments, un sondage ou une...
Contexte: J'essaie de comprendre les pointeurs, nous les avons vus il y a quelques semaines à l'école et en pratiquant aujourd'hui, je suis tombé sur un idiot? problème, cela peut être très simple pour vous, mais j'ai peu ou pas d'expérience en programmation. J'ai vu pas mal de questions dans SO...
Existe-t-il un moyen de déterminer (par programme, bien sûr) si un pointeur donné est "valide"? Vérifier NULL est facile, mais qu'en est-il des choses comme 0x00001234? Lorsque vous essayez de déréférencer ce type de pointeur, une exception / un crash se produit. Une méthode multiplateforme est...
J'avais écrit des choses comme char *x=NULL; en supposant que char *x=2; créerait un charpointeur vers l'adresse 2. Mais, dans le didacticiel de programmation GNU C, il est dit que int *my_int_ptr = 2;stocke la valeur entière 2dans n'importe quelle adresse aléatoire my_int_ptrlorsqu'elle est...
J'ai vu que cette plage renvoie la clé et la "copie" de la valeur. Existe-t-il un moyen pour cette plage de renvoyer l'adresse de l'article? Exemple package main import "fmt" type MyType struct { field string } func main() { var array [10]MyType for _, e := range array { e.field = "foo" } for _, e...
Disons que j'ai une fonction qui accepte un void (*)(void*)pointeur de fonction à utiliser comme rappel: void do_stuff(void (*callback_fp)(void*), void* callback_arg); Maintenant, si j'ai une fonction comme celle-ci: void my_callback_function(struct my_struct* arg); Puis-je faire cela en toute...