Qu'est-ce qu'un pointeur intelligent et quand dois-je en utiliser
Un type de données abstrait qui simule un pointeur tout en fournissant des fonctionnalités supplémentaires, telles que le garbage collection automatique ou la vérification des limites
Qu'est-ce qu'un pointeur intelligent et quand dois-je en utiliser
std::unique_ptr prend en charge les tableaux, par exemple: std::unique_ptr<int[]> p(new int[10]); mais est-ce nécessaire? il est probablement plus pratique à utiliser std::vectorou std::array. Trouvez-vous une utilité pour cette
Ok, donc la dernière fois que j'ai écrit C ++ pour gagner ma vie, std::auto_ptrc'était toute la lib std disponible, et boost::shared_ptrc'était à la mode. Je n'ai jamais vraiment examiné les autres types de pointeurs intelligents fournis. Je comprends que C ++ 11 fournit maintenant certains des...
Quelle est la différence entre l'ensemble de pointeurs suivant? Quand utilisez-vous chaque pointeur dans le code de production, le cas échéant? Des exemples seraient appréciés! scoped_ptr shared_ptr weak_ptr intrusive_ptr Utilisez-vous le boost dans le code de
Quel est le problème avec ce programme? #include <memory> #include <vector> int main() { std::vector<std::unique_ptr<int>> vec; int x(1); std::unique_ptr<int> ptr2x(&x); vec.push_back(ptr2x); //This tiny command has a vicious error. return 0; } L'erreur: In file...
En pratique avec C ++, qu'est-ce que RAII , quels sont les pointeurs intelligents , comment sont-ils mis en œuvre dans un programme et quels sont les avantages d'utiliser RAII avec des pointeurs
Avec l'arrivée du nouveau standard (et des pièces déjà disponibles dans certains compilateurs), le nouveau type std::unique_ptrest censé remplacer std::auto_ptr. Leur utilisation se chevauche-t-elle exactement (pour que je puisse faire une recherche / remplacement globale sur mon code (non pas que...
J'ai du mal à comprendre l'utilisation des pointeurs intelligents en tant que membres de classe dans C ++ 11. J'ai beaucoup lu sur les pointeurs intelligents et je pense comprendre comment unique_ptret shared_ptr/ weak_ptrfonctionne en général. Ce que je ne comprends pas, c'est l'usage réel. Il...
J'ai lu dans quelques articles que les pointeurs bruts ne devraient presque jamais être utilisés. Au lieu de cela, ils doivent toujours être enveloppés dans des pointeurs intelligents, qu'il s'agisse de pointeurs étendus ou partagés. Cependant, j'ai remarqué que les frameworks comme Qt, wxWidgets...
J'ai parcouru le code source de Clang et j'ai trouvé cet extrait: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Pourquoi voudrais-je std::moveun std::shared_ptr? Y a-t-il un point de transfert de propriété sur une ressource...
At std::make_unique- il des avantages d'efficacité comme std::make_shared? Par rapport à la construction manuelle std::unique_ptr: std::make_unique<int>(1); // vs std::unique_ptr<int>(new
Comparaisons, avantages, inconvénients et quand les utiliser? Il s'agit d'un spin-off d'un thread de ramassage des ordures où ce que je pensais être une réponse simple a généré de nombreux commentaires sur certaines implémentations de pointeurs intelligents spécifiques, il semblait donc utile de...
Il est difficile de dire ce qui est demandé ici. Cette question est ambiguë, vague, incomplète, trop large ou rhétorique et ne peut être raisonnablement répondu dans sa forme actuelle. Pour obtenir de l'aide pour clarifier cette question afin qu'elle puisse être rouverte, visitez le centre d'aide...
Je suis tellement frustré en ce moment après plusieurs heures à essayer de trouver où se trouve shared_ptr. Aucun des exemples que je vois ne montre le code complet pour inclure les en-têtes pour shared_ptr(et le travail). Disant simplement std, tr1et <memory>n'aide pas du tout! J'ai...
Quelle est la surcharge des pointeurs intelligents par rapport aux pointeurs normaux en C ++ 11? En d'autres termes, mon code sera-t-il plus lent si j'utilise des pointeurs intelligents, et si oui, combien plus lent? Plus précisément, je pose des questions sur le C ++ 11 std::shared_ptret...
La question rentre vraiment dans le titre: je suis curieux de savoir quelle est la raison technique de cette différence, mais aussi la raison? std::shared_ptr<void> sharedToVoid; // legal; std::unique_ptr<void> uniqueToVoid; //
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...
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 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.
M. Lidström et moi nous sommes disputés :) L'affirmation de M. Lidström est qu'une construction shared_ptr<Base> p(new Derived);ne nécessite pas que Base ait un destructeur virtuel: Armen Tsirunyan : "Vraiment? Le shared_ptr nettoiera-t-il correctement? Pourriez-vous s'il vous plaît dans ce...