63 字
1 分钟
引用
2024-08-29
无标签
简单实现智能指针
template <typename T> struct Box {
private:
T *value;
template <typename... Args> Box(T *p) : value(p){};
public:
~Box() { delete value; };
auto operator->() -> T * { return value; };
auto operator*() -> T & { return *value; };
template <typename... Args> static auto make(Args &&...args) -> Box<T> {
return Box<T>(new T(std::forward<Args>(args)...));
}
};
