C'est une idée de feature du C++ qui m'est apparu plusieurs fois évidente (et visiblement je suis pas le seul) mais qui visiblement n'existe pas, donc je voudrais savoir si il y a un problème intrinsèque avec le principe que je ne verrais pas.
L'idée est simple : actuellement nous ne pouvons surcharger les fonctions new et delete qu'au niveau
- du namespace global
- d'une classe.
Cela est assez contraignant pour des tas de raisons déjà discutées.
Une manière peut être efficace de régler le probleme (mais qui est interdite aujourd'hui) serait de pouvoir surcharger ces fonctions mais au niveau du namepsace.
C'est à dire permettre d'avoir un monnamespace::new() qui ne soit appelé que pour tout ce qui est contenu dans ce namespace ( après inclusion de la déclaration du new/delete evidemment).
De cette manière, on peut potentiellment avoir une allocation customisée pour tout une bibliothèque par exemple, sans avoir a utiliser d'héritage de classe pour surcharger new/delete dans les classes de base.
Est-ce que ça vous parait choquant? Est-ce qu'il y a un probleme qui vous semble fondamental? Peut être que le nesting de namespace poserai des problèmes ou ça serait un détail d'implémentation? De loin ça n'a pas l'air bien compliqué à implémenter (ça ressemble a une surcharge "classique") mais peut être qu'il y a une implication que je ne vois pas?
Partager