Puis-je appeler le placement C++ sur des constructeurs avec des paramètres? J'implémente un allocateur personnalisé et je veux éviter d'avoir à déplacer des fonctionnalités de constructeurs non-par défaut dans une fonction init.Placement de nouveaux constructeurs et de constructeurs par défaut
class CFoo
{
public:
int foo;
CFoo()
{
foo = 0;
}
CFoo(int myFoo)
{
foo = myFoo;
}
};
CFoo* foo = new (pChunkOfMemory) CFoo(42);
j'attendre un objet de type OOFC à être construit à l'aide du deuxième pChunkOfMemory constructeur. Lors de l'utilisation de l'opérateur new suis-je bloqué avec les constructeurs par défaut uniquement?
Résolu! Je n'ai pas #include <new>
. Après cela, appeler placement :: new a bien fonctionné avec les constructeurs autres que ceux par défaut.
Avez-vous essayé? –
Oui - erreur C2660: 'opérateur nouveau': la fonction ne prend pas 2 arguments. Avez-vous une réponse à la question? –
Est-ce que le placement nouveau sans arguments constructeur fonctionne dans le même contexte? Vous souvenez-vous de '#include'? –
aschepler