草庐IT

初始化OpenStack

全部标签

c++ - 无法转换大括号括起来的初始值设定项列表

我声明了一个bool值表并在main()中对其进行了初始化constintdim=2;boolTable[dim][dim];intmain(){Table[dim][dim]={{false,false},{true,false}};//codereturn0;}我使用mingw编译器,构建器选项是g++-std=c++11。错误是cannotconvertbrace-enclosedinitializerlistto'bool'inassignment` 最佳答案 数组只能在定义时这样初始化,之后不能这样做。要么将初始化移动到定

RSTUDIO服务器初始化错误:TypeError:C不确定

当我试图登录到rstudio服务器,我看到消息如屏幕截图中的“RSTUDIO服务器初始化错误”和“TypeError:C不确定”。这是什么意思?看答案请勿用户使用RHEL6中附加的浏览器。我遇到了Firefox的同一问题。当我使用Chrome时,它是修复的。

c++ - 如何使用枚举初始化 vector/数组?

我想知道是否有某种方法可以使用枚举来初始化vector。枚举是必需的,因为我正在创建一个对象vector(相同的类,Chess_piece,但类型不同)。我希望能够在不进行大量测试的情况下访问该元素(if(thisiswhitepawn8)...)。枚举可用于以一种很好的方式逐项列出片段vec(W_PAWN8)....无论如何,当我创建vector时,我会做这样的事情(伪代码)//generateenumofpiecesenumpieceList{...}pieceEnum;vectorpieceIter={W_PAWN1,W_PAWN2,...};//equalto{1,2,...}

c++ - 这个变量将如何初始化?

我有以下内容charmem_pool[1024*1024*64];intmain(){//...}我正在尝试彻底了解mem_pool将如何初始化。经过大量搜索,我的结论是:这是一个静态初始化(不是在static关键字中,而是在“在程序执行之前运行-在静态初始化阶段”)它将分两个阶段运行:零初始化和默认初始化(第二阶段不会做任何事情)它是一个POD数组,因此应该应用每个元素的默认初始化,但是由于前面的两点,我们不会有一个不确定值的数组(就像我们使用charar[N]在函数范围内)但是一个零数组。有人可以帮助我消除语言所保证的歧义并在我错的时候纠正我吗?我还想过做以下任何事情charmem

c++ - 何时以及如何默认初始化一个 const 变量?

clang++不允许defaultinitializationofaconstvariableofclass-typewithoutauser-definedconstructor;g++的限制稍微少一些(见下文)。根据thisanswer,这是因为POD类型“默认情况下未初始化”。如果我理解正确的话,这意味着默认初始化不会调用默认构造函数,也不会调用值初始化,因此POD类型中的数据成员不会被初始化。当然,其中包含未初始化值的constPOD类型是没有意义的,因为它们永远不会被初始化,因此使用起来不安全。这种情况有几种变体:技术上该类型是“POD”,但不包含数据成员(仅包含函数)。(c

c++ - constexpr 初始化是否应该在其他初始化之前发生

我有以下代码,它在gcc和clang上的表现符合预期。然而,MSVC给了我意想不到的结果。让我们先看看有问题的代码。#include//-----------------------------------------------classTest//DummyforMCVE{public:Test();voidPrint();private:intarr[5];};Testtst;//-----------------------------------------------templatestructrange//somestuffnotneededbyexampleremove

c++ - C++中的虚拟继承和统一初始化

跟进thisquestionaboutmultiple(virtual)inheritance,我想询问一个简单的MWE,它使g++5.2.0不高兴,而clang++3.6.2处理得很好,没有任何提示,即使-Wall和-Wextra设置。所以这是MWE:classZ{};classA:virtualZ{protected:A(){}};classB:virtualZ{protected:B(){}};classC:A,B{public:C():A{},B{}{}};intmain(){Cc{};return0;}与clang++不同,g++的报错是这样的:gccodd.c++:Inco

C++:const-从一个初始化函数初始化多个数据成员

我有一个带有两个数据成员的C++类,例如,classmytest(){public:mytest():a_(initA()),b_(initB()){};virtual~mytest(){};private:doubleinitA(){//somecomplexcomputation}doubleinitB(){//someothercomplexcomputation}private:constdoublea_;constdoubleb_;}不幸的是,initA和initB不能如上图所示分开。a_和b_都可以通过一次复杂的大计算来初始化,其中b_的值取决于计算的中间结果>a_,例如,

c++ - 如何为表格或二维数组或多维数组的所有元素设置或初始化默认值

我想为表格或二维数组的所有元素设置一个默认的非零值。array[size]={12}仅将第一个元素设置为12,其他元素连续为0。但是fill(array,array+size,12)将所有元素设置为连续12个元素。我无法将此应用于2darray.Isthereanywaytodothisusingfill()oranywaywithoutdirectinitializationusingdoubleforloop#include#include#include#includeusingnamespacestd;intmain(){intarra[10][10];//declare2da

c++ - pre-main 全局初始化程序是否保证运行单线程?

例如,以下代码段中的node::node()构造函数访问全局变量node::count和::tail没有任何多线程保护。C++标准是否保证输出始终是012的排列(无论顺序如何)?#includestructnode*tail;structnode{staticintcount;intindex;node*prev;node(){index=count++;prev=tail;tail=this;}};intnode::count;nodeone,two[2];intmain(intargc,char*argv[]){for(node*p=tail;p;p=p->prev)printf(