46得票2回答
为什么必须将 std::ranges::filter_view 对象设置为非 const 来查询其元素?

#include <ranges> #include <iostream> #include <string_view> using namespace std::literals; int main() { auto fn_is_l = [](...

46得票1回答
我可以获取标准库中定义的函数地址吗?

请提供需要翻译的内容。#include <cctype> #include <functional> #include <iostream> int main() { std::invoke(std::boolalpha, std::cout); ...

45得票4回答
在GCC 9中是否有C++20范围库?

最新发布的GCC 9是否支持C++20范围库? 我从以下链接复制了范围库的示例代码: https://en.cppreference.com/w/cpp/ranges#include <vector> #include <ranges> #include <io...

45得票1回答
C++20是否删除了类成员必须按升序排列的要求?

在C++17中,有规范文本[class.mem]/17: 非联合类的非静态数据成员具有相同访问控制(Clause 14),它们的分配顺序是后面的成员在类对象内具有更高的地址。具有不同访问控制的非静态数据成员的分配顺序是未指定的。 此外还有[class.mem]/24: 如果标准布局类对象...

44得票6回答
便携式分支预测提示

有没有一种可移植的方法来进行分支预测提示?考虑下面的例子: if (unlikely_condition) { /* ..A.. */ } else { /* ..B.. */ } 这与做下面的操作有什么不同: if (!unlikely_condition) { ...

43得票4回答
如何在g++中使用C++ 20

我正在尝试访问std::popcount,但似乎它只在C++20中存在。 当我尝试使用g++ -std=c++20 main.cpp编译时,它会说g++:错误:无法识别命令行选项“-std=c++20”;你是指“-std=c++03”吗? 我该如何告诉g++使用c++20? 我正在使用U...

43得票2回答
一个lambda表达式是否是合法的默认(非类型模板)参数?

所有下面的标准参考都指的是N4861(2020年3月布拉格后工作草案/C++20 DIS)。 背景 Q&A 捕获无效的lambda表达式是否是结构类型? 强调了某些lambda表达式是否具有关联的闭包类型(文字和)结构类型的潜在规范不足。这种分类的影响可以允许或拒绝将闭包类型用...

41得票3回答
为什么 C++20 的 `std::popcount` 限制为无符号类型?

P0553R4: 位操作中的函数仅限于对无符号整数进行操作。该提案没有给出这一限制的原因。我可以理解,如果有符号整数的位表示未定义,那么这样做是有道理的,但是在C++20中,我们保证有符号整数使用二进制补码。 对我来说,允许使用带符号整数类型调用std::popcount似乎是合理的,因为实...

40得票2回答
C++20的ranges库中,有太多的 | 运算符吗?

我在使用 g++ 10.2 编译这段代码。有人知道为什么最后一个 std::views::reverse 在 results3 上会导致编译错误吗? #include <vector> #include <ranges> int main() { auto ...

40得票2回答
如何在if-constexpr中使用概念?

如何在 if constexpr 中使用概念? 给定以下示例,如果 T 满足 integral 的要求,则将什么提供给 if constexpr 以返回 1,否则返回 0? template<typename T> concept integral = std::is_inte...