草庐IT

初始化OpenStack

全部标签

c++ - 有什么方法可以初始化 unique_ptr 的 vector 吗?

例如structA{vector>m_vector{make_unique(1),make_unique(2)};};我尝试了以上但失败了。有什么方法可以初始化unique_ptr的vector? 最佳答案 您不能从初始化列表中移动,因为元素是const.§8.5.4[dcl.init.list]/p5:Anobjectoftypestd::initializer_listisconstructedfromaninitializerlistasiftheimplementationallocatedanarrayofNelement

c++ - 为什么这些函数局部静态对象的销毁顺序不是它们初始化顺序的倒序?

我有两个函数局部静态对象,一和二。One的构造函数和析构函数都通过GetTwo()访问Two:#includestructOne;structTwo;constOne&GetOne();constTwo&GetTwo();structTwo{constchar*value="It'stwo!";Two(){std::cout我用g++4.8.4编译它:g++-std=c++11[文件名]它输出:OneconstructTwoconstructtwovalis:It'stwo!Onedestructtwovalis:It'stwo!Twodestruct它们的构建和销毁顺序相同!我读到对

c++ - 使用不同类型容器的迭代器范围初始化容器

假设我们有std::set我们想创建一个std::vector使用该集合中的所有值:std::setset;std::vectorvec(set.begin(),set.end());这简单而优雅。但是假设我有一个std::map我想将所有值复制到std::vector.不幸的是,没有接受迭代器和转换器函数范围的构造函数。为什么没有提供这样的构造函数?有没有另一种简单而优雅的方法来初始化具有不同类型值的容器? 最佳答案 使用变换迭代器:#include#include#includeintmain(){std::mapm;autof

K8S集群重新初始化--详细过程

K8S集群重新初始化0、当前环境1、master节点1.1、在master节点执行下面reset命令:1.2、手动清除配置信息,这一步很关键:1.3、重新引导集群1.4、创建配置目录,并复制权限配置文件到用户目录下:1.5查看集群状态1.6安装Calico网络插件2、work节点2.1、重置工作节点2.2、手动删除目录2.3、重新加入集群3、检验效果在引导k8s集群的过程时可能因为这个或那个的原因导致需要重新引导集群。下面整理了我在实际工作中初始化k8s集群的详细过程。0、当前环境k8s环境部署总览ip地址类型操作系统服务配置192.168.162.31Master01Centos7.62核C

c++ - 有什么方法可以欺骗 std::make_shared 使用默认初始化吗?

您应该使用std::make_shared确保带有计数器的block存储在数据旁边。不幸的是内部std::make_shared对T使用零初始化(即使用T()来初始化数据block)。有什么办法可以让它使用默认初始化吗?我知道我可以使用std::shared_ptr(newT,[](autop){deletep;}),但我最终会在这里进行两次分配(数据和计数器block不会彼此相邻)。 最佳答案 创建一个派生类来执行简单的构造。structD:T{D(){}//Non-trivialconstructor.Default-initi

c++ - 获取未初始化对象成员的地址是否定义明确?

考虑以下示例。当bar被构造时,它为它的基类型(foo)构造函数提供了my_member.y的地址,其中my_member是尚未初始化的数据成员。structfoo{foo(int*p_x):x(p_x){}int*x;};structmember{member(intp_y):y(p_y){}inty;};structbar:foo{bar():foo(&my_member.y),my_member(42){}membermy_member;};#includeintmain(){barmy_bar;std::cout这个定义好吗?获取未初始化对象的数据成员的地址是否合法?我找到了t

c++ - 默认初始化整数成员是否首选空初始化器?

我刚刚读了一个commentbyGMan那个classA{public:A():m_ptr()//m_ptrisimplicitlyinitializedtoNULL{}};应该优先于classA{public:A():m_ptr(NULL)//m_ptrisexplicitlyinitializedtoNULL{}};请注意第一个示例中缺少NULL。GMan是对的吗?这可能有点主观,所以“您更喜欢空初始化器进行默认初始化吗?”可能更合适。此外,如果您更喜欢空初始值设定项,这是否适用于其他整数成员?classB{public:B():m_count(),m_elapsed_secs()

c++ - 不能覆盖派生类中的静态初始化

我试图为层次结构中的类提供不同的静态初始化,但是当我尝试使用这段代码时:#includeusingnamespacestd;structbase{staticconstchar*componentName;};constchar*base::componentName="base";structderived:publicbase{};constchar*derived::componentName="derived";intmain(){cout我最终遇到了这个构建错误:test.cpp:15:error:ISOC++doesnotpermit‘base::componentName

C++静态变量的初始化(再一次)

如果我在不同的编译单元中有两个静态变量,那么它们的初始化顺序是没有定义的。这个教训很好学。我的问题是:当第一个静态变量被初始化时,所有的静态变量都已经分配了吗?换句话说:staticAglobal_a;//incompilationunit1staticBglobal_b;//incompilationunit2structA{A(){b_ptr=&global_b;}B*b_ptr;voidf(){b_ptr->do_something();}}intmain(){global_a.f();}b_ptr会指向一block有效的内存,在执行main函数时分配和初始化B吗?在所有平台上?

c++ - 初始化一个类成员引用变量,就像它是一个常规变量一样

现在,我正在为我正在开发的游戏编写一个物理引擎。很多时候,当您将物理引擎与游戏引擎结合使用时,会出现许多重复的值。例如表示对象位置和旋转的变量。对于大多数物理引擎,您必须遍历所有对象并根据物理引擎的对象位置更新它们的位置。所以我认为最好将物理引擎对象中的位置和旋转值作为对游戏引擎对象处理旋转和位置的变量的引用。但是,有时您希望物理引擎中的对象与游戏引擎中的对象不直接相关。(看不见的墙、接缝)。所以你需要将对象视为常规成员变量......这就是我所拥有的。structobject{float&xPosition;float&yPosition;float&zPosition;...obj