草庐IT

bool_constant

全部标签

c++ - 我不明白这个 C++ 错误 - 错误 C2101 : '&' on constant

这段代码应该可以与GCC一起使用——我正试图让它与VisualStudio一起工作。我不知道代码是否真的有问题,或者我没有对端口做正确的事情。1>c:\somepath\aaa.h(52):errorC2101:'&'onconstant1>c:\somepath\aaa.h(52):whilecompilingclasstemplatememberfunction'constblahblah::Messagesomething::AClass::aMethod(void)const'1>with1>[1>Type=constlala::BClass&1>]1>c:\somepath\

c++ - 为什么我得到 "cannot allocate an array of constant size 0"?

这个问题在这里已经有了答案:WhathappensifIdefinea0-sizearrayinC/C++?(8个答案)关闭8年前。我正在为学校做一个扫雷程序,但我的代码中一直出现这个错误cannotallocateanarrayofconstantsize0我不知道为什么会这样;我没有分配大小——我将它设置为0。另一个问题是,我如何通过char读取我的输入char,这样我就可以将它保存在我的数组?正如您在下面看到的,我正在使用输入和输出。我评论了我的输入和输出,这样你们就可以看到我在这个程序中使用了什么。我想通过char读取char,这样我就可以将所有map保存在数组中。我正在使用M

c++ - bool 数组的最小尺寸实现

我需要一个bool数组的最小尺寸实现。数组的大小在编译时已知。我检查了std::bitset和boost::array,但它们都会产生对小数组来说很重要的开销。例如,如果数组大小为8,则容器应仅使用1字节内存(假设是普通CPU架构)。这是否存在,还是我需要自己推出? 最佳答案 您可以自己制作,但不能从头开始。bitset实现应该有几行看起来像typedefunsignedlong_WordT;(SGI)或typedef_Uint32t_Ty;(MSVS)。您可以小心地替换类型和命名空间,并以此方式制作您自己的容器。我将类型更改为ch

c++ - Boost 程序选项 bool 总是 True

通过程序选项,我正在检查参数的有效组合。但出于某种原因,gpu参数是一个bool,无论我是否在命令行上将其设置为false,它始终为true。如果我在命令行上指定了gpu选项,有没有办法让它为false?我希望能够创建一个bool变量来表示是否使用了命令行上的选项。我也找不到任何关于variables_map的count()的文档。它是std::map函数吗?部分代码:namespacepo=boost::program_options;po::options_descriptiondesc("AllowedOptions");desc.add_options()("help,h","

c++ - C++中的二维 bool 数组初始化

我不太使用C,最近我对二维数组初始化问题感到困惑。我需要调试某人的代码并卡在以下(她的原始代码)中:constintlocation_num=10000;bool**location_matrix;if(node_locations){location_matrix=(bool**)malloc(location_num*sizeof(bool*));if(!location_matrix){cout我认为这是多余的,所以我将其更改为以下内容:location_matrix[location_num][location_num]={{false}};但是,段错误会在运行时发生。我的问题

c++ - 如何检查 vector<bool> 实际上是位 vector 而不是字节 vector ?

我需要存储一个动态的位数组。TheC++referencepageonvector具有以下信息:Thestorageisnotnecessarilyanarrayofboolvalues,butthelibraryimplementationmayoptimizestoragesothateachvalueisstoredinasinglebit.如何确保我的程序使用vector实际上在vector中存储位而不是boolean值(字节)吗? 最佳答案 不要尝试那样做。相反,使用boost::dynamic_bitset这清楚地表明你

c++ - 编译器优化 "constant propagation"是什么意思?

摘自ScottMeyers的EffectiveC++:templateclassSquareMatrix:privateSquareMatrixBase{public:SquareMatrix():SquareMatrixBase(n,0),pData(newT[n*n]){this->setDataPtr(pData.get());}...private:boost::scoped_arraypData;};Regardlessofwherethedataisstored,thekeyresultfromabloatpointofviewisthatnowmany—maybeall—

c++ - 海湾合作委员会 4.1.2 : error: integer constant is too large for ‘long’ type

我编译了一段关于散列函数的代码并得到了错误:整数常量对于‘long’类型来说太大了。我用谷歌搜索了一下,它说要添加后缀“ULL”,但我确实有ULL作为后缀。这个后缀只有gcc4.4.1支持,我机器上只有gcc4.1.2,不允许安装新的编译器。有什么方法可以更改代码以解决问题吗?谢谢,-托尼unsignedlonglonghash(stringk){//FNVhashunsignedlonglongx=14695981039346656037ULL;for(unsignedinty=0;y 最佳答案 1099511628211对于(3

c++ - 将 ifstream 转换为 bool 和使用 ifstream::is_open() 之间的区别

也许是个伪问题,但我需要一个明确的答案。这些函数的返回有什么不同吗intFileExists(conststd::string&filename){ifstreamfile(filename.c_str());return!!file;}intFileExists(conststd::string&filename){ifstreamfile(filename.c_str());returnfile.is_open();}所以换句话说,我的问题是:将fstream转换为bool会给出与fstream::is_open()完全相同的结果吗>? 最佳答案

c++ - libstdc++ 的 std::vector<bool>::data 有什么作用?

根据标准,std::vector没有成员函数data().但是,以下代码片段可以使用带有libstdc++的最新GCC正常编译:#includeintmain(){std::vectorv;v.data();}如果我们尝试使用结果,结果返回类型是void.这是一些gcc扩展还是一个错误?如果前者为真,它有什么作用? 最佳答案 我的/usr/include/c++/4.8/bits/stl_bvector.h有://_GLIBCXX_RESOLVE_LIB_DEFECTS//DR464.Suggestionfornewmemberfu