【问题标题】:Why are the written versions of logical operators not more widely used? [closed]为什么逻辑运算符的书面版本没有得到更广泛的使用? [关闭]
【发布时间】:2014-07-30 04:36:12
【问题描述】:

为什么逻辑运算符的书面版本没有得到更广泛的使用?我理解为什么它们存在(在编程的早期阶段消除与 QWERTY 键盘相关的问题),但对于其他“丑陋”的操作员来说,它们似乎是一种语法糖。在 auto 和基于范围的 for 循环的今天,当 andor 可用时使用“丑陋”的运算符似乎违反直觉。

对于刚入门的C++ 学生来说,and 肯定比&& 更直观。同样or 等同于||

我找到了this 的答案,特别是下面的块引用启发:

...至于它们的使用:因为它们很少使用,所以使用它们通常比它有用更令人惊讶和困惑。我敢肯定,如果它是正常的,它们会更容易阅读,但是人们已经习惯了 && 和 ||其他任何事情都会让人分心。

这基本上对我说“人们不使用它们,所以他们不期望它们”,这似乎很奇怪,因为and(至少对我而言)比使用&& 更直观。

【问题讨论】:

  • 我觉得这个问题主要是基于意见的......
  • 最有可能在我的回答 people will be surprised to see them used 上作为 Potatoswatter cmets,因为它们并不广为人知。
  • 确实如此。每当有人在 SO 上使用它时,不可避免地会有其他人声称它不是有效的 C++。
  • 即使您知道它们存在(不是每个人都知道),与“主要”相比,“替代”听起来令人沮丧。如果我有“主要”选项,为什么要使用“替代”?我绝对没有理由拒绝初级版本,而且我读过的所有优秀的 C++ 书籍都使用它。我根本没有动力去改变。
  • 更好的问题是:“为什么这些存在,因为在它们被发明之前很久就不需要它们了?”答案是:它们是第二系统效应的一个近乎完美的例子。除了解决几十年不存在的问题之外,没有任何实际用途的无用废话。

标签: c++ operators


【解决方案1】:

我使用它们,并且我敦促人们也使用它们。这就是它的全部。很少有人使用它们的原因是(a)历史和(b)Visual C++ 无法识别它们,并且需要用户include <ciso646>That’s a bug which Microsoft recognises but refuses to fix.

这就是关于他们的全部内容。

【讨论】:

  • 哇...只是...哎哟。我从来不知道 VC++ 不支持这些。
  • 应该注意的是,微软从未将其视为一个错误,只是一个设计决定。
  • @Jason 是的,但微软完全错了。他们宣传兼容的 C++ 编译器 (minus some well-specified, justified features)。他们在撒谎。
猜你喜欢
  • 2011-01-23
  • 2011-01-21
  • 1970-01-01
  • 1970-01-01
  • 2017-03-24
  • 2013-08-06
  • 2020-04-14
  • 1970-01-01
  • 2023-03-12
相关资源
最近更新 更多