Defined in header <memory> | ||||
---|---|---|---|---|
|
Deallocates storage previously allocated with std::get_temporary_buffer
.
Parameters
p | - | the pointer previously returned by std::get_temporary_buffer and not invalidated by an earlier call to return_temporary_buffer |
Return value
(none).
Exceptions(none). | (since C++17) |
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 | #include <algorithm> #include <iostream> #include <memory> #include <string> #include <iterator> int main() { const std::string s[] = { "string" , "1" , "test" , "..." }; const auto p = std::get_temporary_buffer<std::string>(4); // requires that p.first is passed to return_temporary_buffer // (beware of early exit points and exceptions) std::copy(s, s + p.second, std::raw_storage_iterator<std::string*, std::string>(p.first)); // requires that each string in p is individually destroyed // (beware of early exit points and exceptions) std::copy(p.first, p.first + p.second, std::ostream_iterator<std::string>{std::cout, "\n" }); std::for_each(p.first, p.first + p.second, [](std::string& e) { e.~basic_string< char >(); }); std::return_temporary_buffer(p.first); } |
Output:
1 2 3 4 | string 1 test ... |
See also
obtains uninitialized storage (function template) |
Please login to continue.