我正在尝试切换我的代码以使用make_shared<type>()
但我有很多不完整的类型(在创建时完成)并且想知道是否有 make_shared 可以使用不完整的类型或允许我传递删除器类型。
我环顾四周,没有找到任何与此相关的帖子,所以要么这行得通吗??或者我忽略了一些基本的东西。
#define NEW_PARAMS(Type, ...) ::std::shared_ptr<Type>(new (Type)(__VA_ARGS__), ::std::default_delete<Type>())
以上是我用来创建新对象的宏。想将其转换为
#define NEW_PARAMS(Type, ...) ::std::make_shared<Type>(__VA_ARGS__, ::std::default_delete<Type>())
编辑:只是为了澄清我想问一下我是否可以将删除器类型传递给shared_ptr
创建的make_shared