c++ - 从类型中减去是什么意思?

标签 c++ types operator-overloading

我试图理解一些古老的代码,我遇到了似乎是从类型中减去的内容。这是一个古老的 C++ 习语吗?我一直在尝试推测,但如果 C++ 具有重载 operator-() 的“类型”类型,我什至无法猜测它会做什么。

int* array;
if(array[index] != (int)-1)
{
    //do things
}

(我显然已经重构/删除了一些东西来简化它;这段代码确实可以编译和工作,但即使我单步执行,我也无法弄清楚这一行在做什么) int 周围的括号可能是一个线索;我不确定他们能做什么。

最佳答案

这是 -1 转换为 int,而不是减法。

正如 Jerry Coffin 很好地指出的那样,转换毫无意义(没有双关语意),因为该文字无论如何都是 int 类型。

关于c++ - 从类型中减去是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460682/

相关文章:

c++ - 具有任意类型 vector 输入的 Rcpp 快速统计模式函数

变量周围的 C++ 堆栈已损坏

f# - 非惯用的全局运算符重载如何工作?

c++ - 函数名称周围的括号如何更改调用哪个函数?

c++ - 如何随机洗牌 map 中的值?

ios - Swift 泛型类型属性和方法

json - 如何使用 GROUP BY 子句将正确的属性名称设置为 json 聚合结果?

java - 为什么 Java 原始数据类型不称为 java 数据类型?

rust - 如何将 Arc<T> 与 T 进行比较?

c++ - 我怎样才能在 C++ 中做第二类构造函数?