草庐IT

test_union

全部标签

c++ - 在 C++ 中合并 union 集

从unsignedint的vectorvector开始...vector>matrix;vectorrow;我想合并union集(即具有共同元素的vector)。例如,作为输入:matrix[0]={0,1,2}matrix[1]={1,10}matrix[3]={9}matrix[4]={2,8}matrix[5]={7}作为输出:matrix[0]={0,1,2,10,8}//itdoesn'tmattertheordermatrix[1]={9}matrix[2]={7}对于这个问题,哪个是最有效的解决方案?最好的问候,Vi。 最佳答案

c++ - 如何通过命令行运行 Google Test?

我有一个启动并运行GoogleTest的示例项目。我有一个简单的测试类,如下所示:#includeTEST(FirstTest,TestNumberOne){EXPECT_NE(2,1);}这是在我电脑上的目录/home/dave/Desktop/sandbox/black-test/src/code/Tester.cpp我在使用Ubuntu的Eclipse中工作。测试类在Eclipse中运行良好(右键单击,以C++运行)。但是我找不到关于如何通过命令提示符运行的文档?其次,大多数为C++进行单元测试的人是将他们的测试项目与生产代码分开还是耦合(就像大多数Java项目一样)?

c++ - union 中的 std::shared_ptr

我正在实现一个“变体”类,它必须具有尽可能小的内存占用并使用共享指针机制存储一些对象。为此,我想在所有变量类型的类中建立一个union。这包括一些shared_ptr。operator=和复制构造函数必须更改变量的数据类型,从而切换到union中的另一个成员。切换到shared_ptr后,应将其重置为null而无需删除/取消拥有指针。有办法做到这一点吗?当然,还有其他方法可以实现这一点,但在我的例子中,它们通常更复杂、更不安全或消耗更多内存。不过欢迎提出任何建议。谢谢! 最佳答案 重置为null是不够的;的实现std::shared

c++ - 当使用位域 union 替换位掩码时,访问非事件成员,好还是未定义?

来自thisquestion我了解到匿名结构和union已成为C11标准的一部分(来自评论)。然后我想用bitfieldunion来代替bitmask可能是个好主意,我发现其他人已经发布了一个问题并显示了anexample。,这和我的想法完全一样。该问题的答案同意使用位域union方法替换位掩码的安全性。但是,thepostthere的答案,据我了解,否认访问不活跃的union成员的安全性,说访问不活跃的union成员是未定义的行为。我认为这两个问题的答案是矛盾的:仅使用theexamplethere,在修改.user后,.raw的值会变成undefined(通过对thepost的回答

c++ - GCC Address Sanitizer - 将库函数列入黑名单(特别是 boost::test)

我所有的单元测试代码都基于boost::test。我刚刚尝试了GCCAddresssanitizer,它报告了boost::test的一些问题:==25309==ERROR:AddressSanitizer:heap-use-after-freeonaddress0xf5801344atpc0x8259412bp0xff9966c8sp0xff9966bcREADofsize4at0xf5801344threadT0#00x8259411inboost::unit_test::framework::run(unsignedlong,bool)../common/lib/boost/bo

maven无法解决org.junit.test

我正在尝试通过命令行中的Groovy编译和运行单元测试。项目中的包装结构不遵循命名约定-这是我目前无法更改的。这些课程被组织为:src/abc/def/SomeClass.groovysrc/abc/tests/def/TestSomeClass.groovy当我跑步时mvntest,消息是:无法解析类org.junit.test和无法解析类org.junit.assert在课堂里src/abc/tests/def/TestSomeClass.groovy.我的pom是:4.0.0org.codehaus.mojomy-project1.0org.codehaus.gmavenplusgmav

c++ - Boost::Test——Main() 的生成?

我对设置boost测试库有点困惑。这是我的代码:#include"stdafx.h"#defineBOOST_TEST_DYN_LINK#defineBOOST_TEST_MODULEpevUnitTest#includeBOOST_AUTO_TEST_CASE(TesterTest){BOOST_CHECK(true);}我的编译器生成非常有用的错误消息:1>MSVCRTD.lib(wcrtexe.obj):errorLNK2019:unresolvedexternalsymbol_wmainreferencedinfunction___tmainCRTStartup1>C:\Use

c++ - 什么是正确的 std::set_union 代码?

Thissite声称set_union等效于以下代码:templateOutputIteratorset_union(InputIterator1first1,InputIterator1last1,InputIterator2first2,InputIterator2last2,OutputIteratorresult){while(true){if(*first1但这看起来很奇怪:如果其中一个范围为空,会不会崩溃(或导致其他未定义的行为)?这两个if子句不应该在while循环的开头,而不是结尾吗? 最佳答案 我同意它看起来完全坏

c++ - 将 std::array<POD, N> 放入 union 中是否安全?

我有一个这样声明的union:union{intall[4];struct{inta,b,c,d;};};点allarray只是为了简化4个字段的迭代。为了让它更简单,我想用std::array替换它.那会使我暴露于nasaldemons吗?? 最佳答案 首先,重要的是要注意,union中只有两个不同类型的对象永远不会是未定义的。未定义的是写入一个并从另一个读取,但有一个异常(exception):[C++11:9.5/1]:[Note:Onespecialguaranteeismadeinordertosimplifytheuse

c++ - 为包含 union 的结构定义 `swap` 方法;怎么做?

我正在调整一些C++03代码以利用C++11的新可能性,特别是以C++11的方式引入移动语义。但是我遇到了一个struct,这让我很头疼,因为它包含一个匿名union。它具有全局形式structtree{//dataof|tree|enum{tag0,tag1,tag2,...}kind;union{type1field1;type2field2;...};//constructorstree():kind(tag0){}//default,emptystatetree(const&type1x):kind(tag1),field1(x){}//variant1tree(const&t