(C/ c++)如何创建一个接受自增操作符的宏
(C/C++) how to create a macro that accepts the increment operator
为了使我的问题精确,我想创建一个宏,接受变量++并将其与另一个变量粘贴。在代码:
#define MYMACRO(A, OP) /* .... */
然后如果我在源文件中写入
MYMACRO(this->var, ++)
预处理器应该粘贴代码
this->var++;
当我试图将宏定义为a# #OP时,它提供了以下错误:
粘贴"++"answers"var"没有给出有效的预处理令牌
有可能做我正在尝试的事情吗?
提前感谢您的回答
您不需要##
令牌粘贴操作符,因为您没有尝试将这些参数组合成单个令牌。只使用:
#define MYMACRO(a, op) (a)op;
您只需要像这样组合这些标记:
#define MYMACRO(a, incrdecr) (a)incrdecr
相关文章:
- 一个更容易的拷贝分配操作符实现
- 如何使操作符的左操作数<<一个函数
- Assert()函数抛出一个错误——操作符有问题
- 我可以在c++中创建一个新的操作符吗?
- 在使用另一个类的类中重载操作符==
- 在可强制转换为另一个模板类型的类模板中重载赋值操作符
- 如何创建一个std::map的常数值,它仍然可以被[]操作符访问
- 输出一个pair列表(由重载操作符创建)
- 操作符重载- cout和cin——ostream函数,不能被引用——它是一个已删除的函数
- 为什么不是只有一个?复制构造函数和赋值操作符
- 我正在努力完成我的作业.在Distance类中创建一个重载*操作符
- 重载操作符来处理我自己的类作为std类是一个好做法吗?
- c++的另一个类成员和重载操作符
- 如何定义一个全局可见操作符
- 为什么编译器可以找到其中一个操作符重载,而不能找到另一个
- 定义操作符<为另一个结构体的两个对象在结构体中
- 模板重载=操作符在一个类中工作,在另一个类中无法编译
- 仅对两个父级中的一个进行赋值操作符
- c++赋值操作符,如何将一个对象设置为等于一个新对象的实例
- 看起来像一个引用操作符,但不是c++定义