Placement Syntax - Functions

Functions

The placement new functions are overloads of the non-placement new functions. The declaration of the non-placement new functions, for non-array and array new expressions respectively, are:

void * operator new (std::size_t) throw(std::bad_alloc);
void * operator new (std::size_t) throw(std::bad_alloc);

The Standard C++ library provides two placement overloads each for these functions. Their declarations are:

void * operator new (std::size_t, const std::nothrow_t &) throw;
void * operator new (std::size_t, void *) throw;
void * operator new (std::size_t, const std::nothrow_t &) throw;
void * operator new (std::size_t, void *) throw;

In all of the overloads, the first parameter to the operator new function is of type std::size_t, which when the function is called will be passed as an argument the amount of memory, in bytes, to allocate. All of the functions must return type void *, which is a pointer to the storage that the function allocates.

There are also placement delete functions. They are overloaded versions of the non-placement delete functions. The non-placement delete functions are declared as:

void operator delete (void *) throw;
void operator delete (void *) throw;

The Standard C++ library provides two placement overloads each for these functions. Their declarations are:

void operator delete (void *, const std::nothrow_t &) throw;
void operator delete (void *, void *) throw;
void operator delete (void *, const std::nothrow_t &) throw;
void operator delete (void *, void *) throw;

In all of the overloads, the first parameter to the operator delete function is of type void *, which is the address of the storage to deallocate.

For both the new and the delete functions, the functions are global, are not in any namespace, and do not have static linkage.

Read more about this topic:  Placement Syntax

Famous quotes containing the word functions:

    Nobody is so constituted as to be able to live everywhere and anywhere; and he who has great duties to perform, which lay claim to all his strength, has, in this respect, a very limited choice. The influence of climate upon the bodily functions ... extends so far, that a blunder in the choice of locality and climate is able not only to alienate a man from his actual duty, but also to withhold it from him altogether, so that he never even comes face to face with it.
    Friedrich Nietzsche (1844–1900)

    The mind is a finer body, and resumes its functions of feeding, digesting, absorbing, excluding, and generating, in a new and ethereal element. Here, in the brain, is all the process of alimentation repeated, in the acquiring, comparing, digesting, and assimilating of experience. Here again is the mystery of generation repeated.
    Ralph Waldo Emerson (1803–1882)

    One of the most highly valued functions of used parents these days is to be the villains of their children’s lives, the people the child blames for any shortcomings or disappointments. But if your identity comes from your parents’ failings, then you remain forever a member of the child generation, stuck and unable to move on to an adulthood in which you identify yourself in terms of what you do, not what has been done to you.
    Frank Pittman (20th century)