相关疑难解决方法(0)

逻辑运算符的书面版本

是我见过的唯一一个地方and,or并被not列为C++中的实际运算符.当我在NetBeans中编写一个测试程序时,我得到了红色下划线,好像有一个语法错误,并认为该网站是错误的,但它是错误的NetBeans,因为它编译并按预期运行.

我可以看到!受到青睐,notand&& 的可读性or似乎比他们的语法兄弟更大.为什么这些版本的逻辑运算符存在,为什么看似没有人使用它?这是真正有效的C++还是与语言中包含的C的某种兼容性?

c++ language-features logical-operators

86
推荐指数
4
解决办法
1万
查看次数

有人使用命名的布尔运算符吗?

或者我们都坚持我们的教学"&&,||,!" 办法?

我们为什么要使用其中一个的任何想法?

我只是想知道,因为有几个答案说明代码应该尽可能自然,但是我没有看到很多带有"and,or,not"的代码,而这更自然.

c++ boolean

13
推荐指数
5
解决办法
2268
查看次数

你使用哪些C++逻辑运算符:和,或者不是和类型的运算符?为什么?

标题中隐含的休闲/好奇心问题.

我个人更喜欢新操作符,以便在我看来使代码更具可读性.

哪些人自己使用?你选择一个而不是另一个的原因是什么?

此外,Emacs以不同的方式突出显示这些运算符,以便在查看屏幕时获得更多视觉反馈.我知道旧操作符也可以突出显示,但ISO646默认突出显示

c++ survey operators

7
推荐指数
3
解决办法
2584
查看次数

在定义概念时使用“and”而不是“&&”有什么好处?

我发现一些 CppCon 演讲者使用and而不是&&定义概念并用于&&“正常”布尔表达式,但我无法弄清楚这样做的好处。

我能找到的关于概念命名约定的唯一材料是P1851:snake_case 概念命名指南,但它对此只字未提。

谁能告诉我为什么?

例子:

template <typename T>
concept boolean_testable
    = std::convertible_to<T, bool>
      and requires(T&& t) {
            { !std::forward<T>(t) } -> std::convertible_to<bool>;
          };
Run Code Online (Sandbox Code Playgroud)

代替:

template <typename T>
concept boolean_testable
    = std::convertible_to<T, bool>
      && requires(T&& t) {
           { !std::forward<T>(t) } -> std::convertible_to<bool>;
         };
Run Code Online (Sandbox Code Playgroud)

&&虽然和之间的完全可替代性and引起了我的注意,但我仍然无法弄清楚为什么有些程序员故意选择and 仅在定义概念时使用。我注意到它们仍在其他上下文中使用&&(布尔表达式,T&&...)。我无法弄清楚他们从这种风格中得到了什么好处。

and我不是在问和之间的区别,而是在概念定义中使用而不是仅&&概念定义中使用的动机。据我所知,没有重复的问题。and&&

c++ naming-conventions concept c++20

3
推荐指数
1
解决办法
206
查看次数