29

这是一个分两部分的问题,第一部分是现在最重要和最关心的问题:

  • 您是否在关注 C++11 的设计和演变?您关注哪些博客、新闻组、委员会文件和其他资源?
  • 即使您没有使用任何新功能,它们对您当前的选择有何影响?
  • 您现在正在使用哪些新功能,无论是在生产中还是在其他方面?

第二部分是后续,关于新标准一旦定稿:

  • 您希望立即使用它吗?除了前面问题中列出的内容之外,您在为 C++11 做哪些准备工作?
  • 显然,编译器支持必须存在,但仍然需要考虑同事、辅助工具和其他因素。什么对你的收养影响最大?

编辑:原版实在是太有争议了;但是,我仍然对潜在问题感兴趣,因此我尝试对其进行清理并希望使其可以接受。这似乎比复制要好得多——即使一些答案回应了争论的语气,它们仍然适用于他们解决问题的范围,所有答案都是社区财产,也需要酌情清理。

4

15 回答 15

23

无法猜测有多少人对新的 C++0x 感兴趣,我很确定每个了解 C++ 并使用它的人都会好奇并渴望了解更多关于它的消息。

一旦从 g++ 实现,我就开始使用 C++0x 中的所有新内容。仍然适用于小型非便携式项目。为什么?- 人们不断告诉我忘记 c++ 并完全切换到脚本语言以获得更快的代码开发并忘记内存管理。但是,我最好的经验和知识是 c++。我知道 RAII 并且每天都使用 Boost 库。现在,新功能让我写得比以前快得多。知道右值在这里,指针(甚至是智能指针)从代码中消失了。带有 lambda 的 STL 算法只是摇滚和初始化器列表让我很高兴。自动关键字很生气。

所以,我现在使用 C++0x 的主要原因是开发速度

于 2009-11-18T12:51:32.480 回答
16

我今天不使用 C++0x,因为它会导致失去代码可移植性。因为今天没有 C++0x 标准。

答:没有
原因:代码可移植性

于 2009-11-18T08:28:24.600 回答
9

不,因为它没有在我使用的编译器上完全实现。

当 C++0x 出现,Visual Studio 2010 完全发布,以及“匹配”的 g++ 时,我会尽可能使用 C++0x。这可能是因为我经常启动新项目(我制作游戏)。

虽然我有一个现有的代码库,但每次我想办法做得更好时,它都会改变;改变对我来说不是障碍。利用 C++0x 只是另一个变化。

对于更大的代码库,您会发现不同的意见。有些地方更喜欢代码看起来统一,这意味着参差不齐的 C++0x 不是一个选择:他们要么必须转换整个东西以利用 C++0x,要么不使用它。

其他地方可能会鼓励使用 C++0x 功能,并在空闲时间尝试修复旧代码以匹配。

像我这样的其他地方可能会立即想要利用 C++0x 所提供的所有优势。

答案是:视情况而定。

于 2009-11-18T08:45:22.290 回答
6

不,但我愿意,尤其是对于 lambda 功能。

于 2009-11-18T08:28:10.827 回答
5

不。

我所有的应用软件都是用 Java 开发的。我所有的快速和肮脏的代码都是在 Python 中完成的。我所有的低级工作都是用 C 完成的。我通常不使用 C++(因此它没有影响到我)。

如果我确实使用了 C++,我会像对待 C1x 一样对待 c++0x - 我确保我的代码不会中断,但在标准完成并尘埃落定之前我不会使用新功能.

至于标准批准后我是否会使用新功能,不会。这个过程将是一个渐进的过程。随着对我当前应用程序的维护推出,我可能会添加它,这取决于可能的好处。

在我考虑使用这些功能之前,即使是我编写的新应用程序也需要新的语言功能。

于 2009-11-18T08:24:11.447 回答
3

不,我大部分时间仍在使用 VC6 :(,最早要到 2020 年才能使用 C++0x(也许我应该换公司?)

于 2009-11-18T10:29:30.077 回答
3

我使用了很多 C++0x,特别是可变参数模板和函数、自动和 decltype 以及右值引用。

虽然使用 g++ 4.5 和 Visual Studio 10 可能会有些有趣,但这些功能现在相当稳定,并且在两种编译器上的工作方式相同。

我现在开始的软件项目可能在一年左右不会发布,到那时我希望这些新的编译器可以作为标准使用。

于 2010-04-24T11:07:01.083 回答
2

要看。我正准备在我的硕士论文中使用某些 C++0x 功能(尽管到目前为止,我主要在等待 VS2010b2 时坚持使用 C++03 编译器)

不过,我还不会在实际的专业制作工作中使用它。为此,我想等到标准完成,至少在 MSVC 的情况下,等到编译器以非 beta 版本发布。

于 2009-11-18T14:10:38.250 回答
2

是的,当我玩弄我自己的代码时,它并没有自命不凡地走出去。

不,当我编写某些人会在旧编译器上使用的东西时。

于 2009-11-18T12:55:46.287 回答
1

今年有新工作,所以我心甘情愿地转向 .NET/C# 世界。我对 C++ 的大多数抱怨在 C# 中都不存在。他们做了很多正确的事情(d'oh!我赞美 MS)

我认为 C++ 已经变成了一个怪物,当我最后一次看到它时,C++0x 似乎是在扩大怪物,而不是把它缩小到真正必要的子集。

只是我的两分钱来回答一个主观问题;)

于 2009-11-18T14:26:41.923 回答
1

了解 C++0x 的功能很有趣,尤其是当我意识到我已经通过 C++ TR1 使用了其中的一些功能时。到目前为止,扩展for(“foreach”)static_assert和改进<functional>是我在 C++0x 程序中使用的更多。

它还教会了我一些关于代码重用的知识。试图减少我必须更改以适应 C++0x 的代码量,同时尽可能多地保留与 C++-pre-0x 兼容的代码(例如:库的东西)教会了我将一些 C++0x 修复和元素集成到我的 pre-C++0x 工具箱中;特别是扩展numeric_limits<>到包括 const_ 成员,添加nullptr emulation,添加default_delete和类似的构造,并使用(显然经常被遗忘,因为除了我的之外我还没有找到使用它的代码)[slist|forward_list]

我想说今天使用 C++0x 帮助我更好地继续使用 C++-pre-0x今天。我不确定我是否会在短期内实现“完整”C++0x 的飞跃,考虑到 Boost 有助于覆盖那里的一些领域。而且我不打算在很长很长一段时间内用 C++ 接触正则表达式或线程。

于 2011-11-08T13:52:04.430 回答
1

我正在使用 TR1(正则表达式、unordered_map、unordered_set ...)和一些将在下一个标准中出现的增强功能,例如(希望)lexical_cast ... 每天,而不仅仅是今天 :)

于 2009-11-18T14:16:46.810 回答
0

我正在使用 static_assert、decltype,有时还使用 r 值引用

于 2009-11-18T11:00:31.887 回答
0

unordered_map. 很明显,map最初指定不是每个人都愿意支付对关联容器键进行排序的成本,但是,哦,好吧,至少我们终于有了一个完全标准化的 STL 容器。

我也在使用线程库和其他东西。哈哈,我是先行者!我没有工作,也不直接与任何人一起工作,所以我基本上可以随心所欲地处理这些事情。:)

于 2013-01-28T13:33:49.837 回答
0

现在,我使用的只是 auto 和 decltype,因为我的大部分代码都没有使用任何需要 r-value 引用或类似的东西,而且我现在对 auto 非常满意(比声明一个迭代器地图矢量)

于 2009-11-18T14:21:38.683 回答