IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage C++ Discussion :

Conflit entre surcharge de new et placement new?


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut Conflit entre surcharge de new et placement new?
    Bonjour,
    J'ai une classe qui surcharge son opérateur new() pour passer par un allocateur custom en temps normal.
    Le problème, c'est que j'ai aussi une classe de conteneur template qui utilise un placement new. Mais quand j'utilise ma classe dans le template, ça pète et il me dit qu'il ne trouve pas le placement new:
    error C2660: 'ChainonCoord::operator new' : function does not take 2 arguments
    Est-ce normal (du genre, définir un opérateur new dans une classe cache tous les autres, comme pour les constructeurs), ou est-ce un quirk de Visual?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    C'est normal.

    Lors du processus de recherche des identifiants, il recherche succesivement à divers endroit. Mais dès qu'il trouve un idenfiant il arrete la recherche.

    Or dans ton cas il cherche l'identifiant new, il commence dans le scope de la classe et comme il en trouve un il se stoppe.

    Ensuite seulement il vérifie les arguments, l'accessibilité et autre.

    Dans ton cas, il ne trouve rien.

    Il faut définir new/delete et les versions placement ensemble.

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Merci.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. operator=(&&) à coup de placement new/delete ?
    Par germinolegrand dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2015, 13h26
  2. à propos du placement new
    Par r0d dans le forum Langage
    Réponses: 2
    Dernier message: 18/11/2010, 16h56
  3. erreur placement new G++ 4.3.3
    Par ozzyyzzo dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/01/2010, 22h24
  4. placement new sur tableau
    Par camboui dans le forum C++
    Réponses: 13
    Dernier message: 18/03/2009, 14h44
  5. Placement new et alignement memoire
    Par Genjin dans le forum C++
    Réponses: 5
    Dernier message: 11/06/2007, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo