草庐IT

check_sizeof_voidp

全部标签

c++ - 为什么 sizeof 给我这个结果?

我有这个代码structStudent{charname[48];floatgrade;intmarks[10,5];chargender;};Students;现在我必须得到s的大小所以我加了printf("%d",sizeof(s));现在当我点击编译时,显示的结果是256这是错误的,因为它应该是253因为大小字符名称[48];---->48和float等级;----->4和整数标记[10,5];------>200和字符性别;------>1所以48+4+200+1=253那为什么它告诉我256?================================这部分是我看到你的答

C++ 在预处理器 #if 中对 sizeof() 比较抛出编译错误

我有这个编译时没有出现来自visualstudio的错误“fatalerrorC1017:无效整数常量表达式”。我该怎么做?templateA*Create(){#ifsizeof(B)>sizeof(A)#errorsizeof(B)>sizeof(A)!#endif...} 最佳答案 预处理器不理解sizeof()(或数据类型、标识符、模板或类定义,它需要理解所有这些东西才能实现sizeof)。您正在寻找的是静态断言(由编译器强制执行,它理解所有这些事情)。我用Boost.StaticAssert为此:templateA*Cre

c++ - BOOST_CHECK_EQUAL(和衍生品)添加自定义消息

我们最近开始使用BoostTest框架,到目前为止很喜欢它。但是,在某些测试中,如果我们可以将自定义消息添加到现有帮助程序,那将会很棒。例如,我可以在mytest和mytest2中获取输出,但在mytest3中找不到输出:#defineBOOST_TEST_MODULEmytests#includeBOOST_AUTO_TEST_SUITE(myunit)BOOST_AUTO_TEST_CASE(mytest){//Thisgiveaniceoutput[2+2!=5]BOOST_CHECK_EQUAL(2+2,5);}BOOST_AUTO_TEST_CASE(mytest2){//T

c++ - Caffe中的CHECK & CHECK_EQ等类函数宏的定义具体在哪里?

正如我所注意到的,有很多类似函数的宏,例如CHECK、CHECK_EQ、...在Caffe头文件和源文件中经常使用,例如在blob.cpp中我们有:templatevoidBlob::FromProto(constBlobProto&proto,boolreshape){if(reshape){vectorshape;if(proto.has_num()||proto.has_channels()||proto.has_height()||proto.has_width()){//Usingdeprecated4DBlobdimensions--//shapeis(num,channe

c++ - "Could not determine which "制作 "command to run. Check the "制作 "step in the build configuration."Qt 创建者

我安装了好几次qtcreator,但它从来没有像我现在的PC那样花钱;首先,我使用我的Pendrive(Qt5.8的)上一直有的安装程序,告诉我我无法下载一些存储库,我下载了相同安装程序的5.9版,结果相同。在尝试安装它几次但它没有加载后,我去了另一所房子,在那里我设法安装了它,尽管我必须非常清楚由于缺少库而导致的许多错误(在安装Qt5.9时)。在此之后,我不得不通过“windows更新”为我的win7操作系统下载sp1以运行Qtcreator,但后来,在加载、创建或运行项目时,我会在控制台中说(它是否是GUI并不重要)以下:“无法确定运行哪个”make“命令。检查构建配置中的”mak

c++ - 传入 A::operator new() 的大小是否总是等于 sizeof(A)?

structAfinal{inta;void*operatornew(size_tsize){////Issizealwaysequaltosizeof(A)here?//return::operatornew(size);}voidoperatordelete(void*ptr){::operatordelete(ptr);}};intmain(){for(autoi=0;i我的问题也嵌入了代码中。C++标准是否保证传入A::operatornew()的大小始终相同?更新:在这里,只考虑A是最终类。 最佳答案 引自C++11标准,

c++ -/usr/lib/rpm/check-buildroot 是做什么的?

我正在为C++应用程序构建RPM包。编译安装成功。然后以下命令失败/usr/lib/rpm/check-buildroot并出现以下错误:Found'/user/dfsdf/rpmbuild/BUILDROOT/vendor-xerces-c-3.1.3-3.1.3-1.x86_64'ininstalledfiles;aborting我还没有找到关于此命令的任何文档。check-buildroot有什么作用? 最佳答案 这是一个pointer到脚本的拷贝。因为它被认为是rpmbuild的“内部”部分(在/usr/lib/rpm中,而

c++ - Qt中是否有签名的 `sizeof`替代品

Qt容器的大小返回(有符号)int。我们知道在Qt中,更多的是使用int而不是无符号类型size_t以便在不需要转换的情况下进行算术运算。参见WhydoesQtuseasignedinttypeforitscontainerclasses&WhyQVector.size()returnsint由于语言关键字sizeof返回size_t类型,是否有Qt替代方案? 最佳答案 您可以制作自己的安全版本:templateconstexprintsafeIntCast(){static_assert(s::max(),"Typetoolarg

c++ - 概念 : checking signatures of methods with arguments

我一直在研究概念。这是一个最小的例子,我试图在其中创建一个基于方法签名的概念:templateconceptboolmyConcept(){returnrequires(Ta,inti){{a.foo()}->int;{a.bar(i)}->int;};}structObject{intfoo(){return0;}intbar(int){return0;}};static_assert(myConcept(),"ObjectdoesnotadheretomyConcept");令我惊讶的是,编写{a.bar(int)}->int不起作用,所以我求助于向requires表达式添加一个额

C++ : Check if the template type is one of the variadic template types

这个问题在这里已经有了答案:Checkifatypeispassedinvariadictemplateparameterpack(3个答案)关闭7年前。假设我们有函数:templatevoidfoo(){...};检查“Kind”类型是否是C++(包括C++1z)中的“Kinds”类型之一的最简单方法是什么?