草庐IT

初始化OpenStack

全部标签

c++ - 使用 constexpr 初始化数组?

我想知道是否可以使用constexpr函数(使用C++2011)初始化整个数组。在这里,我有一些东西可以说明我想做什么:templateconstunsignedintMyClass::_myVar[2][3]={{metaFunction(0,0,DIM),metaFunction(0,1,DIM),metaFunction(0,2,DIM)},{metaFunction(1,0,DIM),metaFunction(1,1,DIM),metaFunction(1,2,DIM)}};templateinlineconstexprunsignedintMyClass::metaFunct

c++ - 如何使用户定义的类型像内置类型一样*完全*地初始化?

我想制作一个包装数字类型的类型(并提供额外的功能)。此外,我需要数字和包装器可以隐式转换彼此。到目前为止我有:templatestructWrapper{Tvalue;Wrapper(){}Wrapper(Tconst&value):value(value){}//...operatorsdefinedhere...};它几乎不错,但它完全的行为与内置类型相同:#includeintmain(){unsignedintx1,x2=unsignedint();Wrappery1,y2=Wrapper();std::cerr有什么方法可以让我设计Wrapper这样的语句Wrappery2=

c++ - LLVM,用值 0 初始化一个整数全局变量

我一直在LLVM文档/StackOverflow中兜圈子,无法弄清楚整数全局变量应该如何初始化为0(第一次使用LLVM)。这是我目前的一些代码:TheModule=(argc>1)?newModule(argv[1],Context):newModule("Filename",Context);//Unrelatedcode//currentGlobal->idisjustastringTheModule->getOrInsertGlobal(currentGlobal->id,Builder.getInt32Ty());llvm::GlobalVariable*gVar=TheMod

c++ - 执行数组动态初始化时的操作顺序

我浏览了dcl.init.aggr部分,找不到明确的答案。考虑:staticintx[2]={f(),g()};标准是否说明先初始化哪个:x[0]或x[1]?换句话说,哪个函数先运行:f()还是g()? 最佳答案 以下是回答您问题的标准的一些相关摘录:8.5.1/2“当聚合由初始化列表初始化时,如8.5.4中所指定,初始化列表的元素被视为聚合成员的初始化,以递增的下标或成员顺序。"8.5.4/4“在花括号初始化列表的初始化列表中,初始化子句,包括任何由包扩展(14.5.3)产生的结果,按照它们出现的顺序进行评估。也就是说,在初始化列

c++ - 如何使用初始化列表初始化数组元素?

我正在尝试这样的事情(无法编译):structmystruct{somestructarr[4];mystruct(somestructval):arr[0](val),arr[1](val),arr[2](val),arr[3](val){}};这在C++中如何最好地完成?注意:我可能只想使用此方法设置数组元素的一些。 最佳答案 在C++11中,如果要设置所有元素:mystruct(somestructval):arr{val,val,val,val}{}在C++03或C++11中,如果你只想设置一些元素:mystruct(som

c++ - std::array initializer list 在初始化列表中初始化

虽然我非常喜欢C++11中的新特性,但有时我觉得我遗漏了它的一些微妙之处。初始化int数组工作正常,初始化Element2vector工作正常,但初始化Element2数组失败。我认为正确的语法应该是未注释的行,但对我来说没有任何初始化尝试成功。#include#includeclassElement2{public:Element2(unsignedintInput){}Element2(Element2const&Other){}};classTest{public:Test(void):Array{{4,5,6}},Array2{4,5},//Array3{4,5,6}Array

c++ - 初始化 SDL_Mixer 给出错误 "No available audio device"

我正在开发一个使用SDL/SDL_Mixer播放wav文件的C++应用程序。我一直在Mac上开发应用程序,没有太大问题。但是,我确实需要这个应用程序在Linux上运行,所以我将VirtualBox安装在装有Ubuntu12.04LTS的Windows7机器上。编译工作正常,直到我真正尝试初始化系统。然后,SDL_Mixer给出错误“没有可用的音频设备。”这是抛出错误的代码:usingnamespacestd;voidsimple_sound_init(){if(SDL_Init(SDL_INIT_AUDIO)==-1){fprintf(stderr,"initSDLerror:%s\n

c++ - 使用 Valgrind 检查时,Libzip 示例包含未初始化的值

我一直在使用libzip来处理zip文件,并且我的代码基于rodrigo对thisquestion的回答中的示例。.这是他的代码,供快速引用:#includeintmain(){//OpentheZIParchiveinterr=0;zip*z=zip_open("foo.zip",0,&err);//Searchforthefileofgivennameconstchar*name="file.txt";structzip_statst;zip_stat_init(&st);zip_stat(z,name,0,&st);//Allocmemoryforitsuncompressedc

c++ - 什么时候应该使用统一初始化?

这个问题在这里已经有了答案:Whataretheadvantagesoflistinitialization(usingcurlybraces)?(5个答案)关闭9年前。在C++11中,可以使用如下统一初始化来初始化struct:structBasicStruct{BasicStruct(intx,doubley):x_{x},y_{y}{}private:intx_;doubley_;};BasicStructvar1{5,3.2};问题:我什么时候应该使用此语法BasicStructvar1{5,3.2}而不是像BasicStructvar1(5,3.2)那样调用构造函数?我什么时

c++ - 为什么这个 STL 映射的条目没有在 GCC 4.5.1 中初始化?

这是代码摘录。std::maptemp;temp[0]=.1;cout我正在使用GCC版本4.4.1进行编译,并且我从temp[1]中获得了0值,正如我所期望的那样。我的同事正在使用GCC4.5.1版进行编译。在Debug模式下(使用-g标志),他得到1000。当编译Release模式(-O2标志)时,他得到0。我的想法是,这是未初始化变量通常会出现的问题类型,除了map应该根据thisquestion调用其元素的默认构造函数之外。和其他几个人喜欢它。此外,Josuttis的C++标准库指出Ifyouuseakeyastheindex,forwhichnoelementyetexist