551得票32回答
现代C++11/C++14/C++17及未来的C++20中如何将枚举类型转换为字符串

与所有其他类似的问题相反,这个问题是关于使用新的C++特性的。 2008 c 有没有简单的方法将C++枚举转换为字符串? 2008 c C中如何以简单的方式使用枚举类型变量作为字符串? 2008 c++ 如何轻松地将C++枚举映射到字符串? 2008 c++ 如何使某物既是C标识符又是字符...

420得票4回答
什么是“span”,在什么情况下应该使用它?

最近我得到了建议在我的代码中使用 span<T>,或者在这个网站上看到了一些使用 span 的答案 - 据说是某种容器。但是 - 我在 C++17 标准库中找不到类似的东西。 那么这个神秘的 span<T> 是什么,为什么(或何时)使用它是一个好主意,如果它是非标准的呢?

302得票6回答
在C++中,"<=>"("spaceship",三路比较)运算符是什么?

在我试图了解C++运算符的过程中,我偶然发现了一个列出了一个奇怪比较运算符的表格。这个&lt;=&gt;运算符是做什么用的? 自2017年以来,cppreference.com更新了该页面,现在包含了关于&lt;=&gt;运算符的详细信息。

217得票5回答
为什么我们需要“需要需要”?

C++20约束的一个要点是,在某些情况下,你必须写requires requires。例如,来自[expr.prim.req]/3的这个示例: 一个requires-expression也可以作为requires-clause([temp])中的一种方式,用于编写关于模板参数的临时约束,如...

139得票3回答
C++20中的协程是什么?

c++20中的协程是什么? 它与"Parallelism2"或/和"Concurrency2"有何不同之处(请查看下面的图片)? 下面的图片来自ISOCPP。 https://isocpp.org/files/img/wg21-timeline-2017-03.png

131得票2回答
什么是niebloid?

随着C++20的推出,我们现在可以在cppreference中更频繁地看到“niebloid”这个术语。 在SO上,今天(2020/07/16)可以找到两篇提到它的文章: 第一篇文章 第二篇文章,谈论定制点对象 Google也没有给出太多结果。最著名的可能是这里。 有人能否更详细地说明ni...

120得票2回答
为什么C++20中引入了std::ssize()函数?

C++20引入了以下std::ssize()自由函数:template &lt;class C&gt; constexpr auto ssize(const C&amp; c) -&gt; std::common_type_t&lt;std::ptrdiff_t, ...

118得票1回答
C++20使用等号运算符是否会破坏现有代码的行为?

在调试这个问题时,我遇到了这个。 我将其简化到仅使用Boost Operators: Compiler Explorer C++17 C++20 #include &lt;boost/operators.hpp&gt; struct F : boost::totally_ordered...

111得票4回答
C++20引入模板lambda的需求是什么?考虑到C++14已经有了通用lambda。

C++14 引入了通用 lambda,使得编写以下代码成为可能: auto func = [](auto a, auto b){ return a + b; }; auto Foo = func(2, 5); auto Bar = func("hello", "world"); ...

110得票1回答
chrono::month和chrono::months之间有什么区别?

C++20的chrono类型/值 month{7} 和 months{7} 有什么区别? 有两个如此相似的名称不会让人感到困惑吗?