Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/memory/unique ptr/get deleter"

From cppreference.com
< cpp‎ | memory‎ | unique ptr
m
m (Shorten template names. Use {{lc}} where appropriate.)
Line 1: Line 1:
 
{{cpp/memory/unique_ptr/title|get_deleter}}
 
{{cpp/memory/unique_ptr/title|get_deleter}}
 
{{cpp/memory/unique_ptr/navbar}}
 
{{cpp/memory/unique_ptr/navbar}}
{{ddcl list begin}}
+
{{dcl begin}}
{{ddcl list item | notes={{mark since c++11}} | 1=
+
{{dcl | notes={{mark since c++11}} | 1=
 
     Deleter& get_deleter();
 
     Deleter& get_deleter();
 
}}
 
}}
{{ddcl list item | notes={{mark since c++11}} | 1=
+
{{dcl | notes={{mark since c++11}} | 1=
 
const Deleter& get_deleter() const;
 
const Deleter& get_deleter() const;
 
}}
 
}}
{{ddcl list end}}
+
{{dcl end}}
  
 
Returns the deleter object which would be used for destruction of the managed object.
 
Returns the deleter object which would be used for destruction of the managed object.

Revision as of 19:16, 31 May 2013

 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
 
Dynamic memory management
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Allocators
Garbage collection support
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)



 
 
      Deleter& get_deleter();
(since C++11)
const Deleter& get_deleter() const;
(since C++11)

Returns the deleter object which would be used for destruction of the managed object.

Contents

Parameters

(none)

Return value

The stored deleter object.

Exceptions

noexcept specification:  
noexcept
  

Example

#include <iostream>
#include <memory>
 
struct Foo
{
    Foo() { std::cout << "Foo...\n"; }
    ~Foo() { std::cout << "~Foo...\n"; }
};
 
struct D
{
    void bar() { std::cout << "Call deleter D::bar()...\n"; }
    void operator()(Foo* p) const
    {
        std::cout << "Call delete for Foo object...\n";
        delete p;
    }
};
 
int main()
{
    std::unique_ptr<Foo, D> up(new Foo(), D());
    D& del = up.get_deleter();
    del.bar();
}

Output:

Foo...
Call deleter D::bar()...
Call delete for Foo object...
~Foo...