草庐IT

MyStruct

全部标签

c++ - 我什么时候不需要 typedef?

遇到一些代码阅读typedefenumeEnum{c1,c2}tagEnum;typedefstruct{inti;doubled;}tagMyStruct;我听说这些结构来自C。在C++中你可以很容易地写enumeEnum{c1,c2};structMyStruct{inti;doubled;};这是真的吗?您什么时候需要第一个变体? 最佳答案 首先,这两个声明在C和C++中都是合法的。但是,在C中,它们的语义略有不同。(特别是,您稍后引用该结构的方式会有所不同)。要理解的关键概念是,在C中,结构存在于单独的命名空间中。所有内置类

c++ - 非常简单的代码,出现错误 C2712,不明白为什么

errorC2712:Cannotuse__tryinfunctionsthatrequireobjectunwinding我遇到了一段时间的麻烦,在缩小问题范围后,我只剩下一个非常非常简单的代码,我可以不明白为什么会导致这个错误。我在Windows下使用VisualStudio。我正在使用/EHa进行编译(我不使用/EHsc)我使用__try/__except而不是try/catch的原因是因为我想捕获所有错误,并且不希望程序在任何情况下崩溃,包括例如除以0,try-catch不会捕获。#includestaticstructmyStruct{staticstd::stringfoo

c++ - 如何比较结构

我很难正确设置比较。这是我的问题的一个示例,其中我的代码错误地假定{1,2}={2,1}:http://ideone.com/i7huL#include#includeusingnamespacestd;structmyStruct{inta;intb;booloperatora&&rhs.bb;}};intmain(){std::mapmymap;myStructm1={1,2};myStructm2={2,1};mymap.insert(make_pair(m1,3));std::map::iteratorit1=mymap.find(m1);std::map::iteratori

iphone - 如何将数组分配给结构成员数组?

如何将c类型数组分配给也是相同类型数组的结构成员?这是我的结构:typedefstruct{uint8_ttype;uint8_tdata[10];}MyStruct;这是结构的创建:MyStructmyStruct;这是一些数组的生成:uint8_tgeneratedArray[10]={1,2,3,4,5,6,7,8,9,10};这是我的作业:myStruct.data=generatedArray; 最佳答案 正如其他答案所说,数组不是直接可赋值的,您必须使用memcpy之类的函数:memcpy(myStruct.data,g

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++ - 为什么复制初始化是这样的?为什么需要复制构造函数?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:What’sthemotivationbehindhavingcopyanddirectinitializationbehavedifferently?通过复制初始化,我的意思是这样的:structMyStruct{MyStruct(int){}MyStruct(constMyStruct&){}};MyStructs=5;//needs*both*theintandcopyconstructor尽管使用C++编程多年,但我从未意识到上述代码需要复制构造函数(感谢jogojapan)。临时文件总是被省略,因此

c++ - 如何将结构模板标记为好友?

我有这样的代码:templatestructMyStruct{TaType;UanotherType;};classIWantToBeFriendsWithMyStruct{friendstructMyStruct;//whatisthecorrectsyntaxhere?};赋予模板友元的正确语法是什么? 最佳答案 classIWantToBeFriendsWithMyStruct{templatefriendstructMyStruct;};在VS2008中工作,并允许MyStruct访问该类。

Swift:将类型 T 的数组传递给采用 T 协议(protocol)数组的方法

我正在尝试编写一个类,该类具有符合MyProto的对象数组,并且我有一个方法可以接受[MyProto]以进行各种处理,然后再进行处理添加到该数组。这是一个Playground。protocolMyProto{funcsayHello()}extensionMyProto{funcsayHello(){print("hello")}}structMyStruct:MyProto{}classMyClass{varprotos:[MyProto]=[]funcdoSomethingAndThenStore(newProtos:[MyProto]){forprotoinnewProtos{p

ios - 测试 "nil"和 ".None"的可选值有什么区别?

我在swift语言中随处可见,人们使用if语句测试可选值,以便他们可以通过两种方式安全地强制解包:ifoptionalValue!=.None{...somecode...}或ifoptionalValue!=nil{...somecode...}有什么区别,它会以某种方式影响我的应用程序/代码吗?什么更好? 最佳答案 在正常使用中没有区别,它们可以互换。.None是nil的枚举表示Optional实现的(不存在)值枚举。.None的等效项和nil感谢Optional实现NilLiteralConvertible的类型协议(prot

ios - 关于 UnsafeMutablePointer 的 destroy() 的术语

///Destroytheobjectthepointerpointsto.//////Precondition:thememoryisinitialized.//////Postcondition:thevaluehasbeendestroyedandthememorymust///beinitializedbeforebeingusedagain.funcdestroy()术语object、memory和value在此上下文中是什么意思? 最佳答案 当您进行自己管理内存而不是让语言运行时为您处理的低级编程时,使用内存是一个两阶段