草庐IT

c++ - 具有自定义结构类型的可变参数的函数

我有Swift背景,虽然我也懂一些C,但这是我第一次编写C++代码。在Swift中,可以编写一个接受任意数量参数的函数:funcfoo(bar:String...){//...}和bar可以是任何类型(字符串、bool、结构、枚举等)。我想知道是否可以在C++中完成同样的操作。所以,理想情况下我会写:structX{strings;X(int);//...}voidfoo(strings,...){//...}foo("mystr",X(1),X(2),X(3));内部foo我会以某种方式能够访问参数列表,有点类似于printf功能。现在我正在使用vector作为参数,因为所有参数的类

c++ - 使用C++模板编程提取任意结构的字段类型

如果我定义一个具有任意数据类型的结构,例如:structcustom_type{inta;floatb;charc;float*d;//etc...};是否有一种通用模式使用模板编程(C++)来提取此结构的字段类型并在编译时将它们映射到某些类型特定的代码处理程序?一些上下文:我正在创建一个api,它允许客户定义他们自己的任意自定义类型,并且仍然允许它们与我拥有的用于管理和内省(introspection)这些类型的底层系统集成,进行自动内存管理和其他内务处理.“包装”模板或其他机制将允许这种集成而底层系统对定义自定义类型的头文件一无所知。从客户端的角度来看,代码访问结构以正常方式,但模

c++ - 以函数作为模板参数的偏特化拒绝

得到这段代码,以前的gcc版本可以很好地编译:templatestructHelperWrapper;//[...]templatestructHelperWrapper{staticinlineintWrapFuncT(constint){return0;//Changed}};//UnarytemplatestructHelperWrapper{staticinlineintWrapFuncT(constint){return1;//Changed}};//BinarytemplatestructHelperWrapper{staticinlineintWrapFuncT(cons

c++ - 直接访问指针是否比通过结构访问指针更快?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭4年前。Improvethisquestion假设我有一个C程序,它遍历一个目录并将目录条目元数据存储在名为dir的structdirent*中。该程序多次访问字段dir->d_name。我想知道设置辅助字符指针(例如char*str=dir->d_name)是否会使程序更快。我知道取消引用指针是一项相对昂贵的操作。问题是,如果我设置了一个辅助变量,我仍然在取消引用一个指针;唯一的区别是在一种情况下我取消引用一个指向结构的指针,而在第二种情况下我取消

c++ - 将光标位置存储在类对象中(ncurses c++)

我正在使用QTCreator编译我的C++代码和图书馆。假设我们有以下类定义(.h):structcoordinateYX{inty;intx;coordinateYX(longintyPos,longintxPos);coordinateYX(){}}classRogue{private:longinthealth;coordinateYXheroPosition;public:longintgetHealth();voidsetHealth(longintinitHealth);voidhealthChange(longintvDelta);coordinateYXgetHeroP

c++ - 如何强制 MSVC 编译器省略大型临时对象的堆栈分配?

这个问题不是thisone的重复问题或其他类似问题。这个问题是关于在初始化和使用后清除一个结构。更新在阅读了您的前几条评论后,我想澄清一下我的问题:如何强制MSVC编译器省略大堆栈分配?我更新了标题、文本和下面的代码以阐明这一点。我最近开始使用/GS、/sdl和/analyze编译器选项编译我的项目。(MicrosoftVisualC++2015)使用这些选项,编译器可以正确警告有问题的代码结构。但是,我遇到了一些我一直认为是好的C++风格的警告。请看下面的示例代码:structmy_struct{charlarge_member[64000];};voiddo_something_e

c++ - C 和 C++ header : Define global struct inside of another struct

我有一些C代码,其中有一些结构如下所示:typedefstructmy_library_a_tmy_library_a_t;typedefstructmy_library_b_tmy_library_b_t;typedefstructmy_library_c_tmy_library_c_t;structmy_library_a_t{structmy_library_b_t{intdata;structmy_library_c_t{intdata;}c;}b;intdata;};这在C++中不起作用,因为在C中structmy_library_b_t定义了一个全局structmy_lib

c++ - "expected ' : ', ' , ', ' ; ', ' } ' or ' __attribute__ ' before ' { 结构成员函数中的' token"

我正在尝试编译我教授设计过度的C++代码。这是我的代码:/***Vectorclass.*CommonmathematicaloperationsonvectorsinR3.**WrittenbyRobertOsada,March1999.**/#ifndef__VECTOR_H__#define__VECTOR_H__/***Vector3**/structVector3f{//coordinatesfloatx,y,z;//normfloatnormSquared(){returnx*x+y*y+z*z;}doublenorm(){returnsqrt(normSquared())

c++ - 在 qsort 之后识别项目/类指针

第一个问题,所以请原谅我的天真。我正在研究用于C++的三角剖分库,它在运行它的三角剖分方法之前对结构指针数组进行排序。我试图在我的应用程序中跟踪一个特定的结构指针(XYZ),它会根据鼠标位置进行更新。问题是,无论何时应用qsort方法,这个指针都会改变。我如何识别或跟踪此结构XYZ指针?这是结构和排序...structXYZ{doublex,y,z;};intXYZCompare(constvoid*v1,constvoid*v2){XYZ*p1,*p2;p1=(XYZ*)v1;p2=(XYZ*)v2;if(p1->xx)return(-1);elseif(p1->x>p2->x)re

c++ - 读取 mex 文件中的结构数据时发生奇怪的事情

我刚才被一个很奇怪的mex错误搞糊涂了。..将我的问题归结为核心,我们最终得到以下简单的mex代码。它只显示给定的结构字段是否为空...#include"mex.h"voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){intnumElements=mxGetNumberOfElements(prhs[0]);intnumFields=mxGetNumberOfFields(prhs[0]);mxArray*tmpData;constchar*tmpName;for(intstructIdx=0;stru