草庐IT

初始化OpenStack

全部标签

c++ - 可以默认初始化具有已删除默认构造函数的类类型吗?

根据cppref关于valueinitialization的说法ifTisaclasstypewithnodefaultconstructororwithauser-providedordeleteddefaultconstructor,theobjectisdefault-initialized;但由于该类类型删除了默认构造函数,对象如何被默认初始化?据我所知,类类型的默认初始化需要默认构造函数的访问。如果我们有:structA{A()=delete;intk;};然后A*a=newA;会失败,A*a=newA();也会失败。但是Aa{};没问题。但为什么?根据cppreferenc

c++ - 如何初始化用 auto 关键字声明的循环计数器?

这是我的代码:#include#includevoidcumulative_sum_with_decay(std::vector&v){for(autoi=2;i&v){std::cout{1,2,3,4,5,6,7,8,9,10};cumulative_sum_with_decay(v);printv(v);}当我尝试编译和运行这个程序时,我收到了这些警告:$clang++-std=c++11-Wextrafoo.cpp&&./a.outfoo.cpp:6:24:warning:comparisonofintegersofdifferentsigns:'int'and'std::__

c++ - 为什么静态数据成员可能没有被初始化?

我试图在加载时向工厂注册一堆类。我的策略是利用静态初始化来确保在main()开始之前,工厂已准备就绪。当我动态链接我的库时,这种策略似乎有效,但当我静态链接时无效;当我静态链接时,只有我的一些静态数据成员被初始化。假设我的工厂生产汽车。我有CarCreator类可以实例化少数汽车,但不是全部。我希望工厂收集所有这些CarCreator类,以便寻找新Car的代码可以去工厂,而不必知道谁将进行实际构建。所以我有汽车类型.hppenumCarTypes{prius=0,miata,hooptie,n_car_types};我的工厂.hppclassCarCreator{public:virt

c++ - 在没有默认构造函数的情况下初始化类

如果我有一个类A,只有一个复制构造函数和一个带有参数int和int的构造函数,我将那个类放在里面类B:classB{public:B();privateAa;}如何在B的构造函数中初始化a?我试过a(0,0),a=A(0,0),但不出所料,我收到了一个error:nomatchingfunctionforcallto‘A::A()’ 最佳答案 在B的构造函数中,你会做这样的事情:B::B():a(0,0){//ctorhere} 关于c++-在没有默认构造函数的情况下初始化类,我们在St

c++ - 除非使用,否则为什么不初始化静态模板字段?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:(staticinitialization/templateinstantiation)problemswithfactorypatterntryingtoforcestaticobjectinitialization编辑:这里有一个拷贝,但我会保留它,因为我个人很难找到它。此外,这是对我有帮助的答案:https://stackoverflow.com/a/2852234/673730假设有以下类:templatestructA{staticboolx;staticboolfoo(){coutboolA::x

c++在类声明中初始化静态对象

我有一个C++类(class1),其中另一个类(class2)的静态对象作为私有(private)成员。我知道在使用该程序时我必须初始化静态对象,我可以为此使用默认构造函数(不需要的值)。是否可以只将静态对象初始化为我想要的值一次,并且仅当我创建包含类(class1)的对象时?如有任何帮助,我们将不胜感激。 最佳答案 是的。//interfaceclassA{staticBb;};//implementationBA::b(arguments,to,constructor);//orBA::b=something;但是,即使您不创建

c++ - 我可以依赖一个新的 bool 被初始化为 false 吗?

在C++中,我能否依赖于在所有情况下都初始化为false的新boolean值?bool*myBool=newbool();assert(false==*myBool);//AlwaysthecaseinaproperC++implementation?(更新代码以反射(reflect)评论。) 最佳答案 在这种情况下,是的;但原因很微妙。newbool()中的括号导致值初始化,将其初始化为false。没有它们,newbool将改为执行默认初始化,这会留下一个未指定的值。就个人而言,如果可能的话,我宁愿看到newbool(false)

c++ - 由 lambda 初始化的函数局部静态函数对象,线程安全与否?

下面的函数是线程安全的吗?如果它不是线程安全的,那么使funImpl成为非静态的真的有任何开销吗?还是编译器实际上内联了函数对象函数并完全跳过创建函数对象?intmyfun(std::arrayvalues){staticconstautofunImpl=[&]()->int{intsum=0;for(inti=0;i编辑:我从以下位置编辑了函数签名:intmyfun(conststd::array&values)到:intmyfun(std::arrayvalues)很明显,我不是在问值的线程安全性,而是函数局部静态变量funImpl的线程安全性。 最佳答

c++ - 为什么我不能用列表初始化来初始化 std::vector

为什么这行不通?#includestructA{templatevoidf(conststd::vector&){}};intmain(){Aa;a.f({1,2,3});} 最佳答案 你可以初始化一个std::vector与列表初始化。但是,您不能推断模板参数T使用std::vector在参数列表中并向函数传递不是std::vector的东西.例如,这有效:#includetemplatestructA{voidf(conststd::vector&){}};intmain(){Aa;a.f({1,2,3});}

c++ - 初始化一个 GUID 变量 : How?

我正在尝试初始化GUID变量,但我不确定这是你打算如何去做的。我特别困惑的是如何将最后12位十六进制数字存储在char数组中(我是否包括“-”字符?)如何定义/初始化GUID变量?boolTVManager::isMonitorDevice(GUIDid){//ClassGUIDforaMonitoris:{4d36e96e-e325-11ce-bfc1-08002be10318}GUIDmonitorClassGuid;char*a="bfc1-08002be10318";//doIstorethe"-"character?monitorClassGuid.Data1=0x4d36e