草庐IT

test_union

全部标签

c++ - 引用使用 Union

在工作中,我一直在使用linux和适用于C++11和C++14的GCC编译器。在一些工作代码中,我使用union来存储引用和指针,如下所示:(简化为仅重要部分)structMyStruct{//Stuffunion{double&x;double*x_ptr;};MyStruct(double&value):x(value){}//Morestuff};我相信这段代码清晰、可读、明确,并且提供了一种方便的方式来存储可以转移到其他内容的引用。它提供了易于理解的语法糖,在提高可读性的同时不影响性能。然而,当我尝试在visualstudio15中使用这样的代码时,由于“double&类型的非

c++ - 如何将 Google Test 测试用例标记为 "expected to fail"?

我想为尚未实现的功能添加一个测试用例,并将此测试用例标记为“没关系,我失败了”。有办法吗?编辑:我希望执行测试,只要测试用例处于“预期失败”状态,框架就应该验证它是否失败。编辑2:好像我感兴趣的功能在google-test中不存在,但是theBoostUnitTestFramework中确实存在,并在LIT. 最佳答案 EXPECT_NONFATAL_FAILURE是您希望将预期失败的代码包装起来的内容。请注意,您必须包含gtest-spi.h头文件:#include"gtest-spi.h"//...TEST_F(testclas

c++ - 如何使用 boost::test 库组织测试用例?

我有一个包含50多个.H/.CPP文件/类的项目。我想用自己的测试用例来测试每个类,其中将包括用于测试每个类不同方面的方法。我的类位于不同的目录中,如下所示:/project/include/SuperModuleFoo.hFoo.cpp..Alpha.hAlpha.cpp../test//Iassumethatmytestsshallbeheremain.cppMakefile我想使用boost::test作为单元测试框架。我应该如何组织我的文件,我应该如何命名它们等等。一些提示或链接或建议将不胜感激。谢谢。 最佳答案 我们在类似

c++ - 来自 Parasoft C++test 的混淆控制流分析

我们使用ParasoftC++test静态分析我们的代码。它在使用如下代码时遇到问题:voidfoo(int*x){try{bar();}catch(...){deletex;throw;}*x;}它在*x;行警告:Freedmemoryshouldn'tbesubsequentlyaccessedunderanycircumstances不知何故得出结论,控制流可以传递到catch(...)block,删除x,经过throw;,并使其成为*x;。我尝试了throwstd::exception("");和其他几个,得到了同样的结果。Parasoft当然知道异常并将它们合并到其控制流中,

c++ - 一份拷贝如何使用 memcpy union 简单成员?

我不太确定关于memcpy和union普通成员的标准引用。考虑代码:structTest{union{void(*function_p)(void*);void(*function_p_c)(constvoid*);};Test(constTest&other){usingstd::memcpy;memcpy(&function_p,&other.function_p,sizeof(function_p));//?memcpy(&function_p_c,&other.function_p_c,sizeof(function_p_c));//??}};intmain(void){Tes

c++ - 创建许多 boost::polygons 的 union 的最快方法是什么?

我必须合并许多boost::polgons,但我的方法似乎性能不佳(>15分钟),尤其是在有大量多边形(>2000)的情况下。我将我想要合并的所有多边形插入一个多边形,然后加入多边形,请参阅我的代码:BOOST_FOREACH(polygon,multipolygon){boost::geometry::clear(tmp_union);//tmp_unionisamultipolygonboost::geometry::union_(result,poly,tmp_union);result=tmp_union;}结果可能不会包含很多多边形,因为大多数要合并的多边形都会相交。有没有什

c++ - 不受限制的 union 是否需要放置新的和构造函数定义?

我看到的无限制union的例子似乎总是在构建时使用新的放置。有关C++11功能的维基百科文章在union的构造函数中使用了new放置。https://en.wikipedia.org/wiki/C%2B%2B11#Unrestricted_unions#include//Requiredforplacement'new'.structPoint{Point(){}Point(intx,inty):x_(x),y_(y){}intx_,y_;};unionU{intz;doublew;Pointp;//IllegalinC++03;legalinC++11.U(){new(&p)Poin

c++ - 使用 Google Test、Clang 和 libc++ 构建测试时遇到问题

我尝试使用以下CMake配置构建GoogleTest:$CMAKE_CXX_COMPILER="clang++"CMAKE_CXX_FLAGS="-std=c++11-stdlib=libc++-U__STRICT_ANSI__"cmake../sourceBuilding显示CMake选择了正确的编译器,但我的编译器标志没有通过:$VERBOSE=1make.../Users/jfreeman/local/bin/clang++-I/Users/jfreeman/work/googletest/source/include-I/Users/jfreeman/work/googlete

Parasoft C++test 单元测试常见问题总结-2

这里写自定义目录标题单元测试常见问题总结1.QT项目测试环境-没有生成moc_文件2.QT图形界面的类初始化失败的问题3.测试用例程序启动失败4.由于循环出现测试超时5.桩函数常用接口单元测试常见问题总结1.QT项目测试环境-没有生成moc_文件error:LNK2001:无法解析的外部符号“public:virtualstructQMetaObjectconst*…错误提示如图:配置方法如下:选择需要生成moc文件的类的.h文件,鼠标右键属性,配置属性->常规,在项类型中将C/C++标头,改为自定义生成工具,点击应用然后将自定义生成工具配置如下:命令行:“$(QTDIR)\bin\moc.e

c++ - 如何将 C++ union 转换为 Delphi

我知道之前有人问过这个问题,但我尝试将一些C++结构/union转换为Delphi以使用HikvisionSDK但没有成功。我尝试转换的C++结构/union如下:struct{BYTEbyEnable;BYTEbyRes1[3];DWORDdwTriggerType;NET_ITC_TRIGGER_PARAM_UNIONuTriggerParam;BYTEbyRes[64];}NET_ITC_SINGLE_TRIGGERCFG,*LPNET_ITC_SINGLE_TRIGGERCFG;union{DWORDuLen[1070];NET_ITC_POST_IOSPEED_PARAMst