问题标签 [c++11]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1023 浏览

c++ - 在 c++0x 中是否将通过右值引用传递返回值?

假设我有一个功能:

C++0x 是否明确表示将避免 randomVector 的返回值中的虚假副本?或者编译器是否需要实现 RVO?在我看来,该值randomVector()应该被视为右值,因此应该调用 v 的移动构造函数,但我不完全确定这是真的。

0 投票
13 回答
82839 浏览

c++ - 为什么有人会使用 set 而不是 unordered_set?

C++0x 正在介绍unordered_set哪些在boost和许多其他地方可用。我的理解是具有查找复杂性unordered_set的哈希表。O(1)另一方面,set它只不过是一棵具有log(n)查找复杂性的树。为什么到底有人会使用set而不是unordered_set?即有没有必要set了?

0 投票
3 回答
4234 浏览

c++ - C++0x 概念和 Boost 概念检查库 (BCCL) 有什么区别?

Concepts 没有制定 C++0x 标准,但 Boost 仍然提供Boost Concept Check Library (BCCL)。我猜 BCCL 并没有涵盖 C++0x 标准中的所有内容。BCCL 和提议的 C++0x 解决方案有什么区别?

0 投票
3 回答
4106 浏览

c++ - 在生产中使用 GCC 的 C++0x 模式?

有人在生产中使用 GCC 4.4.0 C++0x支持吗?我正在考虑将它与最新的 MinGW 一起使用,但我不确定它是否足够成熟。

我感兴趣的是:

  • TR1 支持
  • 汽车
  • 初始化列表
0 投票
1 回答
757 浏览

c++ - 关于 C++ 并发中的 parallel_accumulate 的困惑

在以下示例(第 2 章)中,Anthony Williams 正在尝试并行化标准累积函数。我的问题是他为什么要这样做:

为什么要加长减1?为什么不只是:

..................................................... ...................................

0 投票
3 回答
429 浏览

c++ - 在静态初始化期间可以安全地创建线程吗?

在某些时候,我记得读到在 main() 的第一行之前无法安全地创建线程,因为编译器插入特殊代码以使线程在静态初始化期间运行。因此,如果您有一个在构造时创建线程的全局对象,您的程序可能会崩溃。但是现在我找不到原始文章了,我很好奇这是一个多么严格的限制——按标准严格来说是真的吗?大多数编译器都是这样吗?在 C++0x 中它会保持不变吗?符合标准的编译器是否可以使静态初始化本身成为多线程的?(例如检测两个全局对象不相互接触,并在单独的线程上初始化它们以加速程序启动)

编辑:为了澄清,我试图至少了解实现在这方面是否真的有很大差异,或者它是否是伪标准的东西。例如,从技术上讲,该标准允许改组属于不同访问说明符(公共/受保护/等)的成员的布局。但是我所知道的编译器实际上没有这样做。

0 投票
3 回答
5367 浏览

c++ - 为什么 STL 实现如此难以理解?在这里如何改进 C++?

例如,为什么 STL 实现中的大多数成员都有_M_or___前缀?为什么有这么多样板代码?

C++ 缺少哪些功能可以使向量(例如)实现更清晰、更简洁?

0 投票
4 回答
915 浏览

c++ - D在现场的使用

我试图找到一些关于 D 的信息。我特别喜欢这种与 C++ 的比较,以了解它是什么。现在我问自己:D 在该领域中的使用频率如何,它在多大程度上是 C++ 的可行替代方案?

0 投票
2 回答
15477 浏览

c++ - typedef 一个模板类而不指定模板参数

我正在尝试键入 unordered_map 或 std::map,具体取决于是否有可用的 TR1 库。但我不想指定模板参数。从我到目前为止所读到的,在官方 c++0x 标准可用之前,没有参数的 typedef'ing 模板是不可能的。那么有人知道一个优雅的解决方法吗?

0 投票
2 回答
3740 浏览

c++ - C++0x 的 lambda 表达式没有命名类型是不是很糟糕?

我最近在互联网上阅读了一些关于 lambda 表达式的内容,在我看来,C++0x 的 lambda 表达式不会有一个(或多个类型)专门绑定到 lambda 表达式——换句话说,lambda表达式只会匹配模板参数或auto参数/变量。如此处所述会发生什么

支持 lambda 的编译器将为每个 lambda 表达式创建一个唯一的匿名函子类型

我的问题是,这是一件坏事吗?有一些只匹配 lambda 表达式的关键字是否有意义,例如lambda,它的工作方式如下

老实说,我实际上看不到它的用处(特别是考虑到auto接受 lambda 表达式,因此可以将 lambda 分配给一个变量),但我仍然认为 lambda 表达式是匿名类型并且不能专门绑定到一种特定类型(排除所有其他类型)。

从本质上讲,我的问题是,lambda 表达式是匿名的是否可以(无论是在实用性方面 - 缺乏lambda类型是否使我们失去了某些功能 - 并且在哲学上 - lambda 表达式总是有意义吗? '类型' auto)?