目录

get_deleter

描述 (Description)

它返回一个指向sp拥有的删除器的指针。

声明 (Declaration)

以下是std :: get_deleter的声明。

template <class D, class T>
  D* get_deleter (const shared_ptr<T>& sp) noexcept;

C++11

template <class D, class T>
  D* get_deleter (const shared_ptr<T>& sp) noexcept;

参数 (Parameters)

sp - 它是一个共享指针。

返回值 (Return Value)

它返回一个指向sp拥有的删除器的指针。

异常 (Exceptions)

noexcep - 它不会抛出任何异常。

例子 (Example)

在下面的例子中解释了std :: get_deleter。

#include <iostream>
#include <memory>
struct D {
   void operator()(int* p) {
      std::cout << "[deleter called]\n";
      delete[] p;
   }
};
int main () {
   std::shared_ptr<int> foo (new int[10],D());
   int * bar = new int[20];
   (*std::get_deleter<D>(foo))(bar);
   return 0;
}

让我们编译并运行上面的程序,这将产生以下结果 -

[deleter called]
[deleter called]
↑回到顶部↑
WIKI教程 @2018