C++ Library Extensions 2022.12.09
To help learn modern C++ programming
055-placement_new.cpp
Go to the documentation of this file.
1#include <iostream>
2#include <new>
3
4constexpr size_t BufferCount = 10;
5
7
9{
10 auto base_ptr = &gBufferMemory[0];
11
12 int& a = *new( base_ptr + 0 ) int{0};
13 int& b = *new( base_ptr + 1 ) int{1};
14 int& c = *new( base_ptr + 2 ) int{2};
15 int& d = *new( base_ptr + 3 ) int{3};
16 int& e = *new( base_ptr + 4 ) int{4};
17
18 std::cout << "a + b + c + d + e = "
19 << a + b + c + d + e << std::endl;
20}
21
23{
24 constexpr size_t buffer_size = 5;
25
26 int buffer[buffer_size];
27
28 int* ap = new(buffer+0) int{0};
29 int* bp = new(buffer+1) int{1};
30 int* cp = new(buffer+2) int{2};
31 int* dp = new(buffer+3) int{3};
32 int* ep = new(buffer+4) int{4};
33
34 std::cout << "ap + bp + cp + dp + ep = "
35 << *ap + *bp + *cp + *dp + *ep << std::endl;
36}
37
38int main()
39{
41
43}
constexpr size_t buffer_size
auto & cout
void test_placement_new_using_static()
constexpr size_t BufferCount
void test_placement_new()
int gBufferMemory[BufferCount]
int main()
auto & endl