Книга: Standard Template Library Programmer
Functions
Разделы на этой странице:
construct
Category: allocators
Component type: function
Prototype
template <class T1, class T2>
void construct(T1* p, const T2& value);
Description
In C++, the operator new allocates memory for an object and then creates an object at that location by calling a constructor. Occasionally, however, it is useful to separate those two operations. [1] If p is a pointer to memory that has been allocated but not initialized, then construct(p, value) creates an object of type T1 at the location pointed to by p. The argument value is passed as an argument to T1's constructor.
Definition
Defined in the standard header memory, and in the nonstandard backward-compatibility header algo.h. The construct algorithm is no longer part of the C++ standard; it was present in early drafts, and it is retained in this implementation for backward compatibility.
Requirements on types
• T1 must have a constructor that takes a single argument of type T2.
Preconditions
• p is a valid pointer that points to a region of memory whose size is at least sizeof(T1).
• The memory pointed to by p is uninitialized. That is, no object has been constructed at the location p.
Example
double* dp = (double*)malloc(sizeof(double));
construct(dp, 3);
assert(*dp == 3);
Notes
[1] In particular, construct, along with other low-level memory allocation primitives, is used to implement container classes.
See also
Allocators, destroy, uninitialized_copy, uninitialized_fill, uninitialized_fill_n, raw_storage_iterator
- CHAPTER 4 Functions and Libraries in mikroC
- Basic Functions
- Using Functions in Shell Scripts
- 4.1 mikroC Functions
- 4.2 mikroC Built-in Functions
- 4.3 mikroC Library Functions
- 4.1.2 Passing Arrays to Functions
- 4.1.3 Passing Variables by Reference to Functions
- 7.2 mikroC Language SD Card Library Functions
- 8.6 mikroC Language USB Bus Library Functions
- 9.10 mikroC CAN Functions
- 12.3.2 Mapping Generic Functions to Driver Functions