c++中的覆盖=~操作符
Override =~ operator in c++
我想在c++中重写=~操作符。
有什么办法能做到这一点。
当我尝试操作符=~(…)
编译器给出错误
错误:'~'标记前期望初始化项
注意:我需要解析如下表达式:
{ABC == 123 &&PQR =~ cb}
=~操作符的意思是模式匹配
c++没有=~
操作符。只能重载现有的操作符;你不能像在Haskell或其他语言中那样创建自己的。所以你要达到的目的在语法上是不可能的。
没有=~这样的操作符。也没有像=x (x -任何其他运算符)这样的东西
c++中不能定义new操作符
在你的例子中使用操作符~,然后使用赋值。
您需要使用已经存在的操作符。没有办法[1]引入现有符号的新组合,并且不能使用一元(单参数)操作符,例如operator~
。
假设输入是类似字符串的东西,我会说operator%
或operator^
可能会工作。得到if (abc == 123 && pqr % cb) ...
。
这可以通过:
bool operator%(std::string a, std::string b)
{
return isMatch(a, b);
}
[1]除了修改编译器源代码之外,由于这种类型的更改永远不会进入主流编译器,您将不得不在自己的编译器分支上永远维护这样的更改。而且,当然,假设您甚至有编译器源代码可用,这不是所有编译器的情况。
相关文章:
- 使用ios:ate写入到流会覆盖现有文件
- 我可以重新分配/覆盖std::字符串吗
- 叮叮当当在修复时插入多个"覆盖"说明符
- 谷歌模拟和覆盖关键字
- TMap::Emplace() 在应用现有密钥时会覆盖吗?
- 此测试()中发生了什么意外过程?为什么总是覆盖 ch[0 1 2..]?
- 使用子类覆盖基类中定义的函数
- 当覆盖存在时调用基本虚拟"binded to object"函数
- C++指针在 for 循环中被覆盖
- "main"函数堆栈中的对象在第一个任务运行时被覆盖 (FreeRTOS)
- 为什么我的全局 new() 覆盖被绕过了?
- 被覆盖的函数不会反映在基类中,这是正常行为吗?
- C++找出覆盖同一行的数组
- 专门化模板覆盖函数/避免对象切片
- 重写打印函数而不是覆盖基类
- C++中"覆盖功能的异常规范比基本版本更宽松"的奇怪错误
- 如何在 c++ 中覆盖相同的文本文件
- 覆盖应用程序的低级别键盘挂钩问题
- 在覆盖new操作符时传递更多参数(c++)
- c++中的覆盖=~操作符