语言设计 问答列表

为什么C++没有 std::invocable_r 概念?

作者:Afiefh 提问时间:9/25/2023

C++ 添加了概念,标准库包含了相当多的概念。一个概念特别引起了我的注意:std::invocable,它验证了可以使用一组参数调用函子。 std::invocable只是句法糖。但是,标准库进一步...

让复制和直接初始化的行为不同的动机是什么?

作者:Luchian Grigore 提问时间:6/27/2012

有点关系 为什么调用复制构造函数而不是转换构造函数? 初始化有两种语法:直接初始化和复制初始化: A a(b); A a = b; 我想知道他们有不同的定义行为的动机。对于副本初始化,涉及一个...

是否存在具有以下功能的编程语言?

作者:hatcyl 提问时间:7/21/2016

是否有一种语言可以支持以下概念,或者是否有一种模式可以实现与现有概念类似的功能? 概念 我想定义具有以下属性的:、、、;其中 和 .RectangleLengthHeightAreaPerimet...

为什么ranges::for_each返回函数?

作者:康桓瑋 提问时间:9/28/2023

作为标准的遗留返回函数只需要根据 [alg.foreach] 满足 Cpp17MoveConstructible:std::for_eachFunction template<class Input...

为什么可变长度数组不是 C++ 标准的一部分?

作者:Andreas Brinck 提问时间:12/11/2009

在过去的几年里,我很少使用C语言。当我今天读到这个问题时,我遇到了一些我不熟悉的 C 语法。 显然,在 C99 中,以下语法是有效的: void foo(int n) { int values[...

为什么 std::unordered_map 的 KeyEqual 不被其运算符==使用?

作者:Trams 提问时间:9/16/2023

在下面的代码中,我定义了模板参数和 for .我希望输出是,但实际上是.为什么会这样?是因为不用于比较地图吗?HashKeyEqualunordered_map1 1 1 11 1 0 1std::e...

为什么 std::make_shared&lt;T&gt; 不是 std::shared_ptr&lt;T&gt; 的静态函数,即 std::shared_ptr&lt;T&gt;::make?

作者:Peter Fletcher 提问时间:9/19/2023

这是一个关于理解设计决策的问题,而不是对错误或缺陷的抱怨。 在 C++ 标准库中,创建共享指针及其对象的函数是一个直函数, template< class T, class... Args> st...

LLVM 指针取消引用

作者:Kellan_B 提问时间:9/13/2023

在我的 main 函数中,我分配了一个 i8 指针: %a = alloca i8*, align 8 store i8* getelementptr inbounds ([3 x i8], [...

“Least Astonishment”和可变的默认参数

作者:Stefano Borini 提问时间:7/16/2009

任何对 Python 进行足够长时间修补的人都被以下问题咬了(或撕成碎片): def foo(a=[]): a.append(5) return a Python 新手希望这个不带参数的函数...

为什么大多数默认运算符不能有占位符返回类型,即 auto?

作者:Jan Schultke 提问时间:9/13/2023

C++20 使默认比较运算符成为可能,包括像这样的三向比较。 可以具有推导的返回类型,但其他运算符不能:<=> struct S { friend auto operator<=>(const S...


共42条 当前第3页