59得票1回答
为什么std::aligned_storage在C++23中将被弃用,应该使用什么代替?

我刚看到C++23计划弃用std::aligned_storage、std::aligned_storage_t、std::aligned_union和std::aligned_union_t。 据我所知,使用对齐存储的放置new对象在constexpr方面不是特别友好,但这似乎不足以抛弃这个...

34得票2回答
constexpr浮点数运算的影响是什么?

自从C++11以来,我们能够在编译时进行浮点数运算。C++23和C++26向一些函数添加了constexpr,但并非全部都有。 constexpr的浮点数计算在一般情况下是奇怪的,因为结果并不完全准确。然而,constexpr代码应该始终提供一致的结果。C++如何处理这个问题? 问题: ...

32得票1回答
C++23中省略参数列表的lambda表达式的有效性

根据 cppreference 的说法,gcc和clang均已完成对“Down with ()!”的实现,这意味着我们可以在C++23中更简洁地定义lambda表达式。但我发现它们与某种形式不一致:auto l = []<auto> noexcept req...

30得票1回答
C++中的std::expected是什么?

我在 StackOverflow 上找到了一篇最受尊重的答案,其中提到了 std::expected 模板类的使用示例:C++20 中的协程是什么? 与此同时,我在 cppreference.com 上没有找到任何有关这个类的信息。能否请您解释一下它是什么?

24得票2回答
stdfloat中的floatN_t是否保证符合IEEE标准?

与基本类型 - float、double 和 long double 不同,C++23 中引入的 <stdfloat> 中的新类型 floatN_t 是否总是 IEEE 标准二进制浮点类型? 固定宽度浮点数 的 cppreference 页面确实提到了精度和指数位数,这与 IEE...

23得票2回答
为什么 std::views::split() 可以编译通过,而使用未命名的字符串字面值作为模式的 split() 却无法编译通过?

当std::views::split()接收到一个未命名的字符串字面值作为模式时,它不会将该字符串分割,但它可以很好地处理未命名字符字面值。 #include <iomanip> #include <iostream> #include <ranges> ...

23得票1回答
反射 TS - 在 C++23 中会出现吗?

Reflection TS - C++功能描述在此处: https://en.cppreference.com/w/cpp/keyword/reflexpr 我正在寻找有关此功能的任何信息。 我有这个表格描述编译器支持: https://en.cppreference.com/w/cpp/co...

23得票2回答
当一个假设,即[[假设]]包含未定义行为时会发生什么?

在C++23中,[[assume(expression)]]属性使得如果expression为false,行为将变得未定义。 例如: int div(int x, int y) { [[assume(y == 1)]]; return x / y; } 这将编译成与 y ...

20得票1回答
如果需要consteval是用来做什么的?

C++23将引入if consteval。它将用于哪些场景,它与constexpr if有何不同?

19得票2回答
C++23标准包含哪个版本的C标准库?

(我的原始问题本来是关于“_BitInt发生了什么?”但那是基于对一些cppreference页面的误读)。 C++23草案标准的库介绍部分16.2说C标准库在C++中得到支持。然而,对于具体的C标准,只有在16.3的一个脚注(#141)中提到。这是指2018年的C标准,其中并没有提到_Bi...