Есть ли в стандартной библиотеке класс указателя для уникального владения, но без семантики перемещения? Ищу замену, к примеру, такому коду:
class A {
public:
A() { d = new AImpl; }
~A() { delete d; }
};
unique_ptr для такой задачи избыточен: имеет семантику перемещения, хранит deleter, выполняет лишнюю проверку в рантайме на валидность указателя.
Нужно буквально нечто такое:
template <typename T>
class Ref {
public:
Ref(T & r) : r(r) {}
~Ref() { delete &r; }
T & r;
};