Я хочу, чтобы пользователям не приходилось создавать умные указатели для передачи самим конструкторам объектов, а вместо этого передавать необработанный указатель и затем преобразовывать его в умный указатель в процессе инициализации. Тем не менее, есть некоторые предупреждающие сигналы о возникновении утечек памяти, поэтому я хотел проверить: является ли следующий код проблематичным c в любом случае?
#include <memory>
using namespace std;
class A {
private:
std::unique_ptr<int> num;
public:
explicit A(int* n){
num = std::make_unique<int>(*n);
}
};
int main(){
int n = 4;
A a(&n);
// A a(std::make_unique<A>(n)); // instead of having to do this, which is a moderately irritating
};