function template
<memory>

std::return_temporary_buffer

template <class T> void return_temporary_buffer (T* p);
Return block of temporary memory
Releases the memory block pointed by p.

p shall be a pointer value returned by a previous call to get_temporary_buffer.

Parameters

p
Pointer to a block of temporary memory returned by a previous call to get_temporary_buffer.

Return value

none

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// get/return_temporary_buffer example
#include <iostream>
#include <memory>
#include <algorithm>

int main () {
  int numbers[] = {30,50,10,20,60,40};

  // use temporary buffer to sort and show the numbers:
  std::pair <int*,std::ptrdiff_t> result = std::get_temporary_buffer<int>(6);
  if (result.second>0)
  {
    std::uninitialized_copy (numbers,numbers+result.second,result.first);
    std::sort (result.first,result.first+result.second);
    std::cout << "sorted numbers  : ";
    for (int i=0;i<result.second;i++)
      std::cout << result.first[i] << " ";
    std::cout << '\n';
    std::return_temporary_buffer (result.first);
  }

  // show original numbers:
  std::cout << "unsorted numbers: ";
  for (int i=0;i<6;i++)
    std::cout << numbers[i] << " ";
  std::cout << '\n';
  return 0;
}

Possible output:

sorted numbers  : 10 20 30 40 50 60
unsorted numbers: 30 50 10 20 60 40


See also