Inhaltsverzeichnis

const_pointer_cast()

#include <memory>

template<class U, class T)
std::shared_ptr<U> const_pointer_cast (std::shared_ptr<T> p) 

Liefert referenzzählenden Zeiger auf dynamisches Objekt ohne Schreibschutz.

Parameter

p besitzteilender Zeiger

Ergebnis

Rückgabewert: Mitbesitzender Zeiger oder leerer Zeiger, falls p leer ist.

const_cast<U*>(p.get()) muss zulässig sein, führt aber zu undefiniertem Verhalten (zweimalige Freígabe).

Siehe auch

static_pointer_cast().

Beispiel

const_pointer_cast.cpp
#include <memory>
#include <iostream>
 
int main()
{
  std::shared_ptr<const int> p(new int(42));
  std::shared_pointer<int> q = const_pointer_cast<int>(p);
 
  *q = 23;
  std::cout << *q << '\n';
}