草庐IT

Operators

全部标签

c++ - 是>?或 <?任何 C++ 方言中的合法运算符?

我在gcc4.2.1不接受的文件(非连续行)中遇到了以下C++代码行:intframe=blk两者和>?在代码中的各个地方使用。它们似乎是分配两个值中较小(或较大)值的简写,但我从未见过这种运算符组合。关于这是什么的任何想法? 最佳答案 他们被称为minandmaxoperators并且是早期版本gcc中的语言扩展。它们不再受支持。 关于c++-是>?或 https://stackoverflow.com/questions/3949818/

c++ - 是>?或 <?任何 C++ 方言中的合法运算符?

我在gcc4.2.1不接受的文件(非连续行)中遇到了以下C++代码行:intframe=blk两者和>?在代码中的各个地方使用。它们似乎是分配两个值中较小(或较大)值的简写,但我从未见过这种运算符组合。关于这是什么的任何想法? 最佳答案 他们被称为minandmaxoperators并且是早期版本gcc中的语言扩展。它们不再受支持。 关于c++-是>?或 https://stackoverflow.com/questions/3949818/

c++ - 如何覆盖 C++ 类中的 bool 运算符?

我在C++中定义了一个ReturnValue类,它需要报告方法是否成功。我希望类的对象在成功时评估为true,在错误时评估为false。我应该重写哪个运算符来控制我的类的真实性? 最佳答案 简单的答案是提供operatorbool()const,但您可能需要查看safeboolidiom,而不是转换为bool(这可能又会隐式转换为其他整数类型),而是转换为不接受这些转换的不同类型(指向私有(private)类型的成员函数的指针)。 关于c++-如何覆盖C++类中的bool运算符?,我们在

c++ - 如何覆盖 C++ 类中的 bool 运算符?

我在C++中定义了一个ReturnValue类,它需要报告方法是否成功。我希望类的对象在成功时评估为true,在错误时评估为false。我应该重写哪个运算符来控制我的类的真实性? 最佳答案 简单的答案是提供operatorbool()const,但您可能需要查看safeboolidiom,而不是转换为bool(这可能又会隐式转换为其他整数类型),而是转换为不接受这些转换的不同类型(指向私有(private)类型的成员函数的指针)。 关于c++-如何覆盖C++类中的bool运算符?,我们在

c++ - 使用逗号运算符是一种好习惯吗?

我最近(实际上仅在SO上)遇到了C/C++逗号运算符的使用。据我所知,它会在左侧和右侧运算符之间的线上创建一个序列点,以便您拥有可预测(已定义)的评估顺序。我有点困惑为什么会在语言中提供它,因为它看起来像是一个补丁,可以应用于最初不应该工作的代码。我发现很难想象它可以在不太复杂(并且需要重构)的地方使用。有人能解释一下这种语言功能的用途,以及它可以在实际代码中的什么地方(在合理范围内)使用吗? 最佳答案 在while()循环的情况下很有用:while(update_thing(&foo),foo!=0){/*...*/}这避免了必须

c++ - 使用逗号运算符是一种好习惯吗?

我最近(实际上仅在SO上)遇到了C/C++逗号运算符的使用。据我所知,它会在左侧和右侧运算符之间的线上创建一个序列点,以便您拥有可预测(已定义)的评估顺序。我有点困惑为什么会在语言中提供它,因为它看起来像是一个补丁,可以应用于最初不应该工作的代码。我发现很难想象它可以在不太复杂(并且需要重构)的地方使用。有人能解释一下这种语言功能的用途,以及它可以在实际代码中的什么地方(在合理范围内)使用吗? 最佳答案 在while()循环的情况下很有用:while(update_thing(&foo),foo!=0){/*...*/}这避免了必须

c++ - 运算符 |= 用于 C++ 中的 boolean 值

我偶然发现了以下C++结构:boolresult=false;for(inti=0;i我认为这个|=是OR运算符的快捷方式,并且result最终将等于true如果至少这些对TryAndDoSomething的调用之一返回了true。但现在我想知道是否多个调用实际上可以返回true。事实上,如果我们将操作扩展为:result=result||TryAndDoSomething(i);那么只有当return评估为false时才会调用该方法,也就是说,如果在返回true之前没有其他调用。因此,在一个调用返回true后,将不再进行其他调用。这是正确的解释吗? 最佳答

c++ - 运算符 |= 用于 C++ 中的 boolean 值

我偶然发现了以下C++结构:boolresult=false;for(inti=0;i我认为这个|=是OR运算符的快捷方式,并且result最终将等于true如果至少这些对TryAndDoSomething的调用之一返回了true。但现在我想知道是否多个调用实际上可以返回true。事实上,如果我们将操作扩展为:result=result||TryAndDoSomething(i);那么只有当return评估为false时才会调用该方法,也就是说,如果在返回true之前没有其他调用。因此,在一个调用返回true后,将不再进行其他调用。这是正确的解释吗? 最佳答

c++ - 为什么 ->[] 在 C++ 中不是运算符? (取消引用数组指针的下标运算符)

很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。为了帮助澄清这个问题以便可以重新打开它,visitthehelpcenter.关闭9年前。我知道问为什么?对这个网站来说是个糟糕的问题,因为我们不知道。不过,我的意思是用它作为询问的口语替代,有哪些可能的原因?我自然而然地发现自己在写作,foo->[i];并惊讶地发现它不起作用。我的意思是写:(*foo)[i];我相信大多数人已经明白我的意思,但要清楚,我想bar.subscript(i);foo->subscript(i);类似于bar.operator[](i);fo

c++ - 为什么 ->[] 在 C++ 中不是运算符? (取消引用数组指针的下标运算符)

很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。为了帮助澄清这个问题以便可以重新打开它,visitthehelpcenter.关闭9年前。我知道问为什么?对这个网站来说是个糟糕的问题,因为我们不知道。不过,我的意思是用它作为询问的口语替代,有哪些可能的原因?我自然而然地发现自己在写作,foo->[i];并惊讶地发现它不起作用。我的意思是写:(*foo)[i];我相信大多数人已经明白我的意思,但要清楚,我想bar.subscript(i);foo->subscript(i);类似于bar.operator[](i);fo