草庐IT

together_unique

全部标签

c++ - make_unique 值是否初始化 char 数组

例如-#includeintmain(){constautobufSize=1024;autobuffer=std::make_unique(bufSize);}这里的缓冲区是否已经填充了'\0'字符,或者我必须手动填充它以避免垃圾值。有什么可能的方法来做到这一点,std::memset(&buffer.get(),0,bufSize)就足够了吗? 最佳答案 如果您不提供构造函数参数,则所有make_*函数都会对类型使用值初始化。由于make_unique的数组形式不带任何参数,它会将元素清零。

c++ - make_unique 值是否初始化 char 数组

例如-#includeintmain(){constautobufSize=1024;autobuffer=std::make_unique(bufSize);}这里的缓冲区是否已经填充了'\0'字符,或者我必须手动填充它以避免垃圾值。有什么可能的方法来做到这一点,std::memset(&buffer.get(),0,bufSize)就足够了吗? 最佳答案 如果您不提供构造函数参数,则所有make_*函数都会对类型使用值初始化。由于make_unique的数组形式不带任何参数,它会将元素清零。

c++ - 如何初始化一个unique_ptr

我正在尝试向我的类(class)添加延迟初始化函数。我对C++不是很精通。谁能告诉我我是如何实现的。我的类(class)有一个私有(private)成员定义为:std::unique_ptranimal;这是带有一个参数的原始构造函数:MyClass::MyClass(stringfile):animal(newAnimal(file)){}我刚刚添加了一个无参数构造函数和一个Init()函数。这是我刚刚添加的Init函数:voidMyClass::Init(stringfile){this->animal=???;}我需要在那里写什么才能使它等同于构造函数正在做的事情?

c++ - 如何初始化一个unique_ptr

我正在尝试向我的类(class)添加延迟初始化函数。我对C++不是很精通。谁能告诉我我是如何实现的。我的类(class)有一个私有(private)成员定义为:std::unique_ptranimal;这是带有一个参数的原始构造函数:MyClass::MyClass(stringfile):animal(newAnimal(file)){}我刚刚添加了一个无参数构造函数和一个Init()函数。这是我刚刚添加的Init函数:voidMyClass::Init(stringfile){this->animal=???;}我需要在那里写什么才能使它等同于构造函数正在做的事情?

c++ - 将 std::list<std::unique_ptr> 移动到 vector 中尝试引用已删除的函数

这是一个完整的程序,可以重现我的问题。#include#include#include#includeintmain(){std::vector>>v;std::list>l;l.push_back(std::make_unique(0));l.push_back(std::make_unique(1));v.push_back(std::move(l));//error}在最后一行,编译器提示std::unique_ptr的deleted复制构造函数被引用。由于我将列表移动到vector中,我假设不会对列表的元素调用任何复制构造函数。为什么会这样?我将如何解决它?我正在使用MSVC2

c++ - 将 std::list<std::unique_ptr> 移动到 vector 中尝试引用已删除的函数

这是一个完整的程序,可以重现我的问题。#include#include#include#includeintmain(){std::vector>>v;std::list>l;l.push_back(std::make_unique(0));l.push_back(std::make_unique(1));v.push_back(std::move(l));//error}在最后一行,编译器提示std::unique_ptr的deleted复制构造函数被引用。由于我将列表移动到vector中,我假设不会对列表的元素调用任何复制构造函数。为什么会这样?我将如何解决它?我正在使用MSVC2

c++ - unique_ptr VS auto_ptr

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:std::auto_ptrtostd::unique_ptrWhatC++SmartPointerImplementationsareavailable?假设我有这个struct:structbar{};当我像这样使用auto_ptr时:voidfoo(){auto_ptrmyFirstBar=newbar;if(){auto_ptrmySecondBar=myFirstBar;}}然后在auto_ptrmySecondBar=myFirstBar;C++将所有权从myFirstBar转移到mySecondBa

c++ - unique_ptr VS auto_ptr

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:std::auto_ptrtostd::unique_ptrWhatC++SmartPointerImplementationsareavailable?假设我有这个struct:structbar{};当我像这样使用auto_ptr时:voidfoo(){auto_ptrmyFirstBar=newbar;if(){auto_ptrmySecondBar=myFirstBar;}}然后在auto_ptrmySecondBar=myFirstBar;C++将所有权从myFirstBar转移到mySecondBa

c++ - unique_ptr 编译错误

如果我告诉你我无法编译它,我想这会很尴尬。你能帮帮我吗:#includeusingnamespacestd;intmain(){std::unique_ptrp1(newint(5));return0;}$gccmain.cppmain.cpp:Infunction‘intmain()’:main.cpp:6:2:error:‘unique_ptr’wasnotdeclaredinthisscopemain.cpp:6:13:error:expectedprimary-expressionbefore‘int’main.cpp:6:13:error:expected‘;’before‘

c++ - unique_ptr 编译错误

如果我告诉你我无法编译它,我想这会很尴尬。你能帮帮我吗:#includeusingnamespacestd;intmain(){std::unique_ptrp1(newint(5));return0;}$gccmain.cppmain.cpp:Infunction‘intmain()’:main.cpp:6:2:error:‘unique_ptr’wasnotdeclaredinthisscopemain.cpp:6:13:error:expectedprimary-expressionbefore‘int’main.cpp:6:13:error:expected‘;’before‘