gpt4 book ai didi

c++ - C++ 类型特征意义上的标量的目的是什么?

转载 作者:行者123 更新时间:2023-11-27 22:49:13 25 4
gpt4 key购买 nike

我已经能够在 cppreference.com、cplusplus.com 和此站点 (What is a scalar Object in C++?) 上找到引用资料,使我能够确定特定的 C++ 数据类型是否为标量。即,我可以应用这样运行的心理算法:“它是引用类型、函数类型还是 void?如果不是,它是数组、类还是 union ?如果不是,它是标量类型。”在代码中,当然,我可以申请std::is_scalar<T> .最后,我可以应用工作定义“标量类型是一种具有无重载加法运算符的内置功能的类型(算术、指针、成员指针、枚举和 std::nullptr_t)。”

我没能找到的是对标量分类的目的的描述。为什么有人会关心某个东西是否是标量?这似乎是一种“剩余”分类,就像动物学分类学中的“爬行动物”(“嗯,爬行动物是,嗯,一种既不是鸟类也不是哺乳动物的羊膜动物”)。我猜它必须有一些用途来证明它的困惑。我能理解为什么有人想知道一个类型是否是一个引用——例如,你不能引用一个引用。但是为什么人们会关心某物是否是标量呢?什么是标量?

最佳答案

给定is_scalar<T> , 你可以确定 operator=() , operator==()operator!=()any做你想的事(即分别赋值、比较和逆运算)T .

  • 一个class T可能有也可能没有这些,具有任意意义;
  • 一个union T有问题;
  • 一个函数没有= ;
  • 引用可能包含其中任何一个;
  • 一个数组 - 适用于两个不同大小的数组,==!=将使它衰减到指针并进行比较,而=将在编译时失败。

因此,如果你有 is_scalar<T> ,您可以确定它们始终如一地工作。否则,您需要进一步查看。

关于c++ - C++ 类型特征意义上的标量的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39301293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com