草庐IT

FINAL_DEFINE

全部标签

C++ #define 我的我 ->

我正在查看旧应用程序的源代码。在这段代码中,我看到了很多用法“我的”。它被定义为#definemyme->但我不确定这到底是什么意思。这是否意味着如果我使用“my”,它将使用“this->”?我知道这不是一个好的做法,但我需要了解它的作用。谢谢!编辑:这里是作者的更多信息:/*Usethemacros'I'and'thou'forobjectsintheformalparameterlists(iftheexplicittypecannotbeused).Usethemacros'iam'and'thouart'asthefirstdeclarationinafunctiondefin

C++/QML : How to define and handle multiple contexts for dynamically created components?

基本上我的情况是这样的:我有一个扩展QQuickView的类,它通过设置上下文属性将某些对象从C++公开到QML。显示的View是从QML创建的,并且都是同一定制组件的不同实例;当某些事件发生时会创建新View,当这种情况发生时,现有View应显示最初在C++端分配给它们的对象,而新View应显示分配给它们的对象。所以,在C++方面,我有这样的东西:WindowManager::WindowManager(QQuickView*parent):QQuickView(parent){//Settingthesourcefiletousethis->setSource(QUrl("qrc:

c++ - 使用 vi[m] 自动为#define 生成值

截至目前,我在.h文件中包含以下内容:#defineONE#defineTWO#defineTHREE#defineFOUR...#defineFIFTY使用vi[m],我们如何为宏生成替换文本,应该如下所示:#defineONE1#defineTWO2#defineTHREE3#defineFOUR4...#defineFIFTY50问题陈述:给定下限(1)、上限(50)和步长(即每次递增1或2或3等)-vi命令是什么在上述宏中自动生成值?更新:我没有使用enum的选项。 最佳答案 继续,在#defineONE之后放一个“1”(它

c++ - 微软 nmake : Is it possible to define macros from shell command output?

在使用MicrosoftVisualStudio的nmake编写代码时,我试图将我的SVN修订信息保存到宏中。在GNUmake中,我会做类似的事情:SVN_REVISION=r$(shellsvnversion-n)所以我得到例如:SVN_REVISION=r10001这也可以在Microsoftnmake中实现吗?提前谢谢你。 最佳答案 使用提到的技术以及递归调用make,可以这样完成:!IFNDEFMAKEMAKE=NMAKE!ENDIF!IFNDEFSVN_REVISION!IF[echooff&&FOR/F"usebackq

c++ - #define 作为缺失概念的解决方法

在我们等待(希望)传入的concepts时,对于库实现者来说定义宏是个好主意吗?这种方法的优点和缺点是什么?宏示例(作者A.Stepanov):#defineTotallyOrderedtypename#definePointertypename#defineNumbertypename#defineUnsignedtypename#defineIntegraltypename#defineInputIteratortypename#defineOutputIteratortypename#defineForwardIteratortypename#defineBidirectiona

c++ - 是 ISO/IEC 14882 :2011 the final draft?

抱歉,我只是想确定一下,因为我正在考虑在某个时候购买它。是这个吗?C++11是否会有任何后续更改,或者该标准现在正式成为C++语言?(当然不包括最终的C++18、C++2x等。)维基百科说C++11waspublishedas"ISO/IEC14882:2011"[4]inSeptember2011但我对这个过程还不够熟悉,无法真正确定我的问题的答案。 最佳答案 是的,ISO/IEC14882:2011是最终标准(不再是草案)。 关于c++-是ISO/IEC14882:2011thefi

c++ - “static const”、 “#define” 和 “enum” 在性能和内存使用方面的区别

可能是因为#define语句的内联。我知道答案可能取决于编译器,那么假设是GCC。已有类似问题aboutC和aboutC++,但它们更多地是关于使用方面的。 最佳答案 编译器会在给定基本优化后将它们视为相同。检查起来相当容易-考虑以下C代码:#definea1staticconstintb=2;typedefenum{FOUR=4}enum_t;intmain(){enum_tc=FOUR;printf("%d\n",a);printf("%d\n",b);printf("%d\n",c);return0;}用gcc-O3编译:00

c++ - #define 函数参数中的井号

这个问题在这里已经有了答案:Whatdoes#xinsideaCmacromean?(4个答案)关闭4年前。这行代码中的井号表示什么?#defineCONDITION(x)if(!(x)){HandleError(#x,__FUNCTION__,__LINE__);returnfalse;}它是这样被调用的:CONDITION(foo!=false);

C++/Qt 编码风格——#define 应该放在哪里

我正尝试在Qt中构建一个突破性的游戏克隆。我需要弄清楚我的球与哪种类型的QGraphicsItem发生碰撞。例如,如果我的球与墙壁碰撞,球就会弹开,如果它与砖碰撞,它必须反弹并摧毁砖。要找出它是什么类型的QGraphicsItem,我认为最好的方法可能是覆盖QGraphicsItem::type()(如果这是,请告诉我方法不对!)。在brick.h的以下代码中,我将“Brick”的类型设置为3。现在,值3看起来很难跟踪。相反,我宁愿用“#define”来声明一些东西#include//shouldthis#definebehere?//#defineBRICK_SPRITE3class

c++ - #define 代码行到别的东西

在c/c++中是否有可能执行以下操作:#define(_asmint3;)(exit(1))所以在我的代码中的任何地方,这一行都将在编译时被替换。我知道这是不好的做法,但有可能吗?干杯 最佳答案 您可以进行全局搜索并替换为您选择的编程编辑器(或IDE),并将_asmint3更改为例如FOO,然后像这样定义一个宏FOO:#if1// 关于c++-#define代码行到别的东西,我们在StackOverflow上找到一个类似的问题: https://stackov