
- C++ Library - Home
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- The C++ STL Library
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- The C++ Advanced Library
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ Library -
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ memory_resource::resource() Function
The C++ memory_resource::resource() function is used to provide the access to the underlying memory resource used by a polymorphic memory resource. This function returns a pointer to the base memory resource, which is essential for understanding or chaining resource allocation strategies.
Exception:If you try to access resource that already has been deallocated or it is not available then resource() may throw std::runtime_error exception.
Syntax
Following is the syntax for std::memory_resource::resource() function.
resource() const noexcept;
Parameters
It does not accepts any parameter.
Return Value
This function returns the memory resource pointer used by this polymorphic allocator.
Example 1
Let's look at the following example, where we are going to retrieve the upstream memory resource of a std::pmr::unsynchronized_pool_resource.
#include#include int main() { std::pmr::unsynchronized_pool_resource a(std::pmr::get_default_resource()); std::pmr::memory_resource* x = a.upstream_resource(); if (x == std::pmr::get_default_resource()) { std::cout << "Resource is the default resource.\n"; } else { std::cout << "Resource is not the default resource.\n"; } return 0; }
Output
If we run the above code it will generate the following output −
Resource is the default resource.
Example 2
Consider the following example, where we are going to use the chaining memory resources, where the secondary resource uses the primary as its upstream.
#include#include int main() { char a1[111]; std::pmr::monotonic_buffer_resource x1(a1, sizeof(a1)); char a2[222]; std::pmr::monotonic_buffer_resource x2(a2, sizeof(a2), &x1); std::pmr::memory_resource* upstream = x2.upstream_resource(); if (upstream == &x1) { std::cout << "x2 resource's upstream is the x1 resource.\n"; } return 0; }
Output
Output of the above code is as follows −
x2 resource's upstream is the x1 resource.