Comment dois-je écrire ISO C++ Standard conforme personnalisé nouveau et supprimer des opérateurs?

Comment dois-je écrire ISO C++ standard conforme personnalisé new et delete opérateurs?

C'est dans le prolongement de La surcharge new et delete très éclairant C++ FAQ, La surcharge d'opérateur, et son suivi, Pourquoi devrait-on remplacer nouveau par défaut et supprimer des opérateurs?

Section 1: la Rédaction d'une norme-conforme new opérateur

Section 2: la Rédaction d'une norme-conforme delete opérateur


(Note: Ceci est destiné à être une entrée à Un Débordement de pile du C++ FAQ. Si vous voulez une critique de l'idée de fournir une FAQ dans le présent formulaire, puis l'affichage sur des méta qui a commencé toute cette serait l'endroit pour le faire. Les réponses à cette question sont surveillés dans le C++ tchat, où la FAQ idée a commencé à en premier lieu, de sorte que votre réponse est très probablement le faire lire par ceux qui sont venus avec l'idée.)

Remarque: La réponse est basée sur les enseignements de Scott Meyers Plus Efficace C++ et le Standard ISO C++.

  • wow, les gens sont leurs downvotes au début! - Je devine que vous n'avez pas encore fini de poser votre question encore? Je pense que c'est un bon endroit pour discuter de ces problèmes, +1 de moi.
  • L'OP a fini, comme il est maintenant occupé à écrire une longue réponse. Le petit texte états ", basé sur l'apprentissage de Scott Meyer Plus Effective C++" (notez les deux orthographe, fautes de frappe, y compris le nom de Scott Meyers).
  • Regarde comme il y a des gens qui ne vous aiment pas beaucoup 🙂 personnellement, je n'aime pas les réponses décousues comme celui-ci, je sens qu'il appartient dans une section FAQ quelque part au lieu d'être perdu parmi les milliers de questions qui ont été postés à chaque jour. Mais +1 pour l'effort.
  • C'est une suite entrée de la FAQ. Nous avons une excellente Surcharge d'Opérateur FAQ, mais ce sujet est tellement vaste qu'il faudrait une entrée spéciale dans lui-même.
  • Je ne voulais pas dire la FAQ balise, mais une section dédiée du site web, un peu comme le Parashift C++ FAQ. Mais puisque nous n'avons pas cela, c'est la meilleure chose suivante.
  • il y a un peu d'un article dédié: c++-faq, qui est lié à partir de la le c++ balise de la page.
  • Cette question est en fait fréquemment posées?
  • Je pense que la "foire aux Questions" pourrait ainsi inclure "les Réponses Qui Sont Plus Utile De Savoir Que Vous avez Jamais Réalisé, Quand Vous Avez fait un Travail Connexe Fréquemment"
  • McNellis: Nous avons une excellente FAQ du Sbi, sur la surcharge d'Opérateur & il a omis cet aspect pour la raison qu'il a besoin d'une mention spéciale. Cette tente de faire de cette FAQ complète.
  • Mais cette question est fréquemment posée? Si pas, alors que je n'ai pas d'objection à la question posée et la réponse ici, il ne devrait pas avoir le [c++-faq] balise. L'étiquette est déjà trop bruyant.
  • En fait, je serais d'accord avec ça. c++-faq est pas pour tous les auto-répondu livre de style Q&A qu'un utilisateur normal ne peut penser.
  • Bel article, mais s'il vous plaît vous détendre sur la typographie! Un niveau de la décoration à la fois-et pouvez-vous faire avec de moins en moins de backticks? Le tout est un peu dur sur les yeux. Je suis heureux de le modifier un peu si vous le souhaitez.
  • Pourquoi ne pas suivre le lien à la question sur les meta qui a commencé tout cela, de lire à travers les discussions, et de proposer une telle section AFIN d'y poser une question sur meta? Ou à la baisse sur le chat et de discuter de cela quelques jours. Si vous lisez à travers les discussions sur meta, vous verrez que, quand nous avons commencé, nous ne savons pas quelle forme cette FAQ chose doit prendre, et le détournement de la c++-faq balise n'était que le premier-le meilleur de la béquille qui l'accompagnent, destiné à être une solution temporaire jusqu'à ce que nous avons trouvé mieux. Je serais très heureux si quelques nouvelles idées sur la façon de le faire venir et pourrait être discutée.
  • SB: sentez-vous Svp libre pour, en Fait, c'est dans l'un de nos discussions que j'ai réalisé l'existant, la surcharge d'opérateur FAQ n'a pas le couvrir.
  • Est-il une raison pour que tu ne pouvais pas juste faire ce qu'une seule réponse au lieu de 5? Aussi, pourquoi n'est-il pas Wiki de la communauté?
  • Bolas: AFIN de limiter le nombre de caractères dans une réponse, et de ce fait ils ne pouvaient pas juste tenir dans une réponse, Donc distincte de réponses. Ce qui était censé être une entrée à la C++-Faq pour terminer le Surcharge des opérateurs Faq qui est déjà dans l'existence, Ce n'est pas un wiki de la communauté parce que c'était juste une seule personne(moi) qui a formulé la réponse de la Faq, Pour être franc, la plupart des utilisateurs downvoted sans même botherig de le lire. Étant donné que ce a reçu 10 Downvotes(pas de raisons?), J'rassembler la communauté ne l'aime pas, & dans un sens, je regrette de mettre dans les efforts à venir avec ce.
  • Le fin de la communauté wiki est plus que juste qui écrit la réponse. C'est aussi plus de personnes sont en mesure de corriger les erreurs, de celui qui est en haut/en bas rep voix (c'est à dire: personne n'), etc.
  • Bolas: Point, personne n'est la lecture de ce. Laissons de côté l'évaluation de ce qui est mauvais, ou les corriger en elle.Et les entrées ajoutées en tant que contribue n'ont jamais été hostorically marqué Wiki de la Communauté. Vous pouvez le déposer dans le C++ Loung salle de parfois pour discuter de la philosophie derrière le C++ FAQ et les gens qui sont venus avec l'idée de se lancer dans la première place.
  • Utilisé pour être la raison de l'introduction de la CW, cependant, il n'est plus utile pour qui, parce que tout le monde peut intervenir et de modifier, même ceux avec très faible rep. OMI, la seule utilisation de la CW aujourd'hui est pour le système d'appuyer sur l'interrupteur de questions que de prendre trop d'attention (défini à peu près comme "plus d'une douzaine de réponses"), de sorte que les cas les plus graves du système de vote de la faiblesse inhérente (le droit de vote est remis par popularité, plutôt que de justesse) ne pas causer comme beaucoup des ravages.
  • Un commentaire sur le nouvel opérateur contre l'opérateur new[] et la nothrow-nouvel opérateur serait également utile.

InformationsquelleAutor Alok Save | 2011-08-25