Re: Memory issue
On Aug 10, 11:44 pm, Juha Nieminen <nos...@thanks.invalid> wrote:
Alf P. Steinbach wrote:
This default response can be overridden in three ways:
* By replacing the class' operator new (this is just an
unfortunate name for the allocation function; it's
*called* by a 'new' expression, which after that call
proceeds to call the specified constructor, i.e. you're
not overriding what a 'new' expression does by defining
operator new).
* By replacing the global namespace operator new (ditto
comment).
* By installing a new-handler (see set_new_handler, I
think the name was).
Actually there's a fourth: Write your own memory allocator and
give it to your std::vector instance as template parameter.
(Not that this would be any easier than any of the above, but
just pointing out.)
It's not a question of easier; each solution does something
different. Replacing the class' operator new doesn't affect
allocations in an std::vector. Replacing the global operator
new, or installing a new handler, affects all allocations,
everywhere. Using a custom memory allocator affects only
allocations in the vector itself.
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34