language-design 相关问题

与编程语言的任何方面的设计相关的问题的标签。

python的设计:为什么assert是一个语句而不是一个函数?

在Python中,assert是一个语句,而不是一个函数。 根据文档,断言表达式1,表达式2相当于 如果__调试__: 如果不是表达式1: 引发断言错误(

回答 4 投票 0

保持数学相等的哈希函数(特别是对于集合)

我正在开发一种基于数学的编程语言(用 Rust 编写),它使用集合而不是类型。其中,变量或值属于一组值(例如 x : {1, 2, 3} 或 msg : Str)。那个...

回答 1 投票 0

为什么 YAML 规范要求冒号后有一个空格?

YAML 规范明确指出: 映射使用冒号和空格(“:”)来标记每个键:值对。 所以这是合法的: 富:酒吧 但这不是: 富:酒吧 我看到网上很多人在吐槽...

回答 2 投票 0

Python 对象到底什么时候是类?

我正在阅读这个问题的答案什么是Python中的元类?当我了解到 Python 中的类不必使用 class 关键字创建时。例如,引用前面的内容...

回答 1 投票 0

Python 中的类到底是什么?

我正在阅读这个问题的答案什么是Python中的元类?当我了解到 Python 中的类不必使用 class 关键字创建时。这让我想知道:我到底...

回答 1 投票 0

是否可以在C语言中添加类型推断?

比方说,我们创建了 C 的重新实现,唯一的区别是 类型是推断出来的。存储类和修饰符仍然需要 给定(常量、静态、限制等),并且 l...

回答 6 投票 0

为什么标准只要求 std::distance 的输入迭代器,而不是前向迭代器?

我很困惑地发现 std::distance 的模板参数要求是 LegacyInputIterator 而不是 LegacyForwardIterator。 由于仅输入迭代器没有多遍

回答 1 投票 0

C++ 未命名(匿名)命名空间定义

C++03 标准 7.3.1.1 [namespace.unnamed] 第 1 段:(和 C++11 标准也使用类似的定义) 未命名命名空间定义的行为就好像它被替换为 命名空间唯一 { /* ...

回答 1 投票 0

为什么C++没有幂运算符? [已关闭]

许多语言都有幂运算符;为什么C++没有?例如,Fortran 和 Python 使用 **,并且通常使用 ^ 编写(例如在 LaTeX 中)。

回答 4 投票 0

为什么C++重载解析不能推导出嵌套模板类型?

这个所谓的重复解释了为什么不允许这样做的机制,并显示了它无法工作的极端情况,但未能解决为什么 C++ 在这种情况下拒绝允许它的问题...

回答 1 投票 0

为什么 `std::string_view` 不可修改?

我开始用 std::string_view 进行实验。 它有一个非常丑陋的特点。你不能说: std::string_view 和 std::string_view 就像很棒的 std::span 一样。 所以,你不能...

回答 1 投票 0

为什么C++03允许数据成员与类同名?

在C++98标准和C++03标准之间,做了一个有趣的改变: 结构体S{ 整数S; }; 此代码在 C++03 及更高版本中有效,但在 C++98 中格式错误。 具体来说,[类...

回答 1 投票 0

为什么内联/非内联变量的初始化顺序不确定?

int x = f(); 内联 int y = x; 未指定 y 是否为零或 x 的值。 请注意,x 具有有序初始化,y 具有部分有序初始化(请参阅 [basic.start.dynamic] p...

回答 1 投票 0

为什么在指针成员上调用offsetof()是非法的?

从那里我知道在C中对指针调用offsetof是非法的,但为什么它是未定义的行为?标准执行 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEM...

回答 1 投票 0

为什么std::forward_list没有size()成员函数?

我一直使用C++11的forward_list作为快速插入的容器,没有太多内存开销,因为它是一个单链表。 在意识到forward_list没有size()之后...

回答 3 投票 0

这里为什么List<Subtype>可以赋值给List<Supertype>?

我知道Java通常是不变的,因为它不想处理协变/逆变问题。 所以一般来说, List a = new ArrayList(); 将需要...

回答 1 投票 0

为什么视图需要可(移动)分配?

C++23 中的 std::ranges::view 概念要求视图可移动,其中包括移动可分配性。我理解为什么我们希望视图是可移动构造的,但为什么需要分配......

回答 1 投票 0

赋值运算符不是序列点有什么好的理由吗?

operator = 不是序列点有什么充分的理由吗?在 C 和 C++ 中都是如此。 我很难想出反例。

回答 4 投票 0

从技术上讲,赋值运算符的任何用法都可以用括号括起来的海象运算符替换吗?

假设我们有这个赋值语句: 一个= 5 尽管无缘无故地这样做显然很丑陋,但我们可以通过以下方式在技术上完成同样的事情: (一:= 5) 这仍然将 5 分配给 a,...

回答 1 投票 0

如何为我的编程语言实现链式比较运算符支持?

首先,我的编程语言名为 Ignite,是一种转译的编程语言,并将 Ignite 源文件转换为 C++ 源文件。 链式比较运算符是当你有

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.