Posso chiamare il posizionamento C++ nuovo sui costruttori con parametri? Sto implementando un allocatore personalizzato e voglio evitare di dover spostare la funzionalità da costruttori non predefiniti in una funzione di init.Posizionamento costruttori nuovi e non predefiniti
class CFoo
{
public:
int foo;
CFoo()
{
foo = 0;
}
CFoo(int myFoo)
{
foo = myFoo;
}
};
CFoo* foo = new (pChunkOfMemory) CFoo(42);
ci si aspetterebbe un oggetto di tipo CFoo da costruire a pChunkOfMemory utilizzando il secondo costruttore. Quando si utilizza l'operatore new sono bloccato solo con i costruttori predefiniti?
Risolto! Non ho #include <new>
. In seguito, chiamando placement :: new ha funzionato correttamente con i costruttori non predefiniti.
Hai provato? –
Sì - errore C2660: "operatore nuovo": la funzione non richiede 2 argomenti. Hai una risposta alla domanda? –
Il posizionamento nuovo senza argomenti del costruttore funziona nello stesso contesto? Ti sei ricordato di '#include'? –
aschepler