使用或不使用 C++0x 功能 [重复]

2024-03-12

可能的重复:
您今天使用 C++0x 的情况如何? https://stackoverflow.com/questions/1754397/how-are-you-using-c0x-today

我正在与一个团队合作开发一个相当新的系统。我们正在讨论迁移到 MSVC 2010,并且我们已经迁移到 GCC 4.5。这些是我们使用的唯一编译器,我们不打算很快将我们的代码移植到不同的编译器。

我建议在我们这样做之后,我们开始利用一些已经提供的 C++0x 功能,例如 auto.我的同事建议反对这一点,建议等到“C++0x 真正成为标准”。我不得不不同意,但我可以从他的措辞中看到吸引力。尽管如此,我还是忍不住认为这种反驳更多地是出于对学习 C++0x 的恐惧和恐惧,而不是对标准化的真正关注。

鉴于系统的新状态,我希望我们能够利用可用的新技术。例如,仅仅使用 auto 就可以让我们的日常生活变得更轻松(例如,只需编写基于迭代器的 for 循环,直到出现基于范围的循环)。

我这样想有错吗?我并不是建议我们从根本上改变我们刚刚萌芽的代码库,而是开始在方便的地方使用 C++0x 功能。我们知道我们正在使用什么编译器,并且没有立即移植的计划(如果我们移植代码库,那么到那时编译器肯定也将可用于目标平台)。否则,在我看来,就像在 1997 年避免使用 iostream 一样,只是因为 ISO C++ 标准尚未发布,尽管所有编译器都已经以可移植的方式提供了它们。

如果你们都同意,你能给我提供一些可以用来加强我的立场的论据吗?如果没有,我能否获得有关“直到 C++0x 成为标准”想法的更多详细信息?顺便说一句,有人知道那是什么时候吗?


我会根据每个功能做出决定。

请记住,标准是really即将完成。剩下的就是投票、修复错误和更多投票。

所以一个简单的功能就像auto不会消失,也不会改变其语义。那么为什么不使用它呢。

Lambda 足够复杂,以至于它们的措辞可能会发生变化,并且一些极端情况下的语义也会得到一些修复,但总的来说,它们的行为方式将与今天相同(尽管 VS2010 在范围方面存在一些错误)对于捕获的变量,MS 已声明它们是错误,因此可能会在主要产品版本之外修复)。

如果您想安全起见,请远离 lambda。否则,请在方便的地方使用它们,但要避免超级棘手的情况,或者准备好在标准最终确定时检查 lambda 的使用情况。

大多数功能都可以这样分类,它们要么非常简单和稳定,以至于它们在 GCC/MSVC 中的实现正是它们在最终标准中的工作方式,要么它们足够棘手,可能会修复一些错误应用了,所以他们can今天就可以使用,但是在某些边界情况下,您可能会遇到一些粗糙的问题。

仅仅因为 C++0x 功能尚未正式化就避免使用它们听起来确实很愚蠢。避免使用您不相信其完整、无错误且稳定的功能,而使用其余功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用或不使用 C++0x 功能 [重复] 的相关文章

  • 现代 C++ 编译器是否能够在某些情况下避免调用 const 函数两次?

    例如 如果我有以下代码 class SomeDataProcessor public bool calc const SomeData d1 const SomeData d2 const private Some non mutable
  • 未找到 Boost 库,但编译正常

    我正在尝试在 C 中使用 boost 的文件系统 使用时看起来编译没问题 c c Analyse c o Analyse o g W Wall L usr local lib lboost filesystem lboost system
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • cpp.react库的C++源代码中奇怪的“->* []”表达式

    这是我在文档中找到的 C 片段cpp react 库 https github com schlangster cpp react implicit parallelism auto in D MakeVar 0 auto op1 in g
  • 在 C# 中,如何根据在 gridview 行中单击的按钮引用特定产品记录

    我有一个显示产品网格视图的页面 该表内有一列 其中有一个名为 详细信息 的超链接 我想这样做 以便如果用户单击该特定产品的详细信息单元格 将打开一个新页面 提供有关该产品的更多信息 我不确定如何确定哪个Product记录链接的详细信息以及我
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 在 VS 中运行时如何查看 C# 控制台程序的输出?

    我刚刚编写了一个名为 helloworld 的聪明程序 它是一个 C NET 4 5 控制台应用程序 在扭曲的嵌套逻辑迷宫深处 使用了 Console WriteLine 当我在命令行运行它时 它会运行并且我会看到输出 我可以执行其他命令并
  • 是否使用 C# 数据集? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 C 中的数据集概念有点困惑 编码 ASP NET 站点 但这并不重要 在我的阅读中 我了解到它们 本质上 用作我的应用程序和我的
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • memcpy/memmove 到联合成员,这是否设置“活动”成员?

    重要说明 一些评论者似乎认为我是从工会抄袭的 仔细看memcpy 它从普通旧地址复制uint32 t 它不包含在联合中 另外 我正在复制 通过memcpy 到工会的特定成员 u a16 or u x in a union 不直接到整个联盟本
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • 在 Win32 控制台应用程序中设置光标位置

    如何在 Win32 控制台应用程序中设置光标位置 最好 我想避免制作句柄并使用 Windows 控制台功能 我花了整个早上沿着那条黑暗的小巷跑 它产生的问题比它解决的问题还要多 我似乎记得当我在大学时使用 stdio 做这件事相对简单 但我
  • 如何在 sql azure 上运行 aspnet_regsql? [复制]

    这个问题在这里已经有答案了 可能的重复 将 ASP NET 成员资格数据库迁移到 SQL Azure https stackoverflow com questions 10140774 migrating asp net membersh
  • 为什么空循环使用如此多的处理器时间?

    如果我的代码中有一个空的 while 循环 例如 while true 它将把处理器的使用率提高到大约 25 但是 如果我执行以下操作 while true Sleep 1 它只会使用大约1 那么这是为什么呢 更新 感谢所有精彩的回复 但我

随机推荐

  • C# 中的 vbNullChar 等价物是什么?

    C 中 Visual basic vbNullChar 的等价物是什么 我想在 C 中复制这个 VB 语句 Dim sVersion As String sVersion New String vbNullChar 255 我怀疑你想要 s
  • 为什么 C# 内联 if 结果与 if 不同?

    这是我的代码 object w 44 var k1 w is double Convert ToSingle w unchecked uint Convert ToInt64 w if w is double w 22 结果是k1 44 0
  • XIB 中用作自定义 UITableViewCell 的自定义按钮不响应点击 (ios7)

    因此 我在这里将工作的 ios 6 应用程序升级到 ios7 现在我无法在 uitableviewcells 内的自定义按钮 或其他子视图 上接收点击或其他操作 Edit My code 这是我部署 PlaceCell 的位置 UITabl
  • Java/Mysql 服务器程序中的电子邮件帐户密码存储

    我处于一个棘手的境地 我正在编写一个应用程序 使用我公司的电子邮件帐户向客户发送电子邮件 这里的问题是我必须拥有该帐户的密码才能使服务器上的邮件服务从该帐户发送电子邮件 我知道密码永远不应该以纯文本形式存储 尤其是用于重要电子邮件帐户的密码
  • Vim netrw 询问“按 ENTER 或键入命令继续”

    我注意到 当我开始新的一天并打开 vim 然后使用 Exp 时 我收到 按 ENTER 或键入命令继续 提示 通常这会在执行外部命令时显示 我不记得 Exp 过去这样做过 而且 第一次使用netrw时才会出现提示 虽然微不足道 但我觉得这很
  • 如何在 Stata 中查找并替换字符串变量的一部分?

    我正在使用一个基本上是 URL 的变量 所以观察结果包括像这样的值 www google com https www google com https yahoo movies com 我正在尝试创建一个 do 文件以将一堆这些文件导入到
  • 使 toPrimitive 转换取决于上下文[重复]

    这个问题在这里已经有答案了 我希望一个对象在数字上下文中返回一个值 在字符串上下文中返回一个完全不同的值 以下不起作用 foo toString function return string valueOf function return
  • Activity 已泄漏窗口

    在我的启动屏幕中 我做了它 以便它检测 wifi 或 3g 是否启用 如果不是 则会出现一个对话框屏幕提示用户退出并打开其中一个 如果它打开 则代码将继续 我的 logcat 中不断收到有关我的活动有泄漏窗口的错误 我不知道如何解决这个问题
  • 如何检测访问您网站的用户所在的国家和城市?

    如何检测访问您网站的用户的原籍国 我在我的网站上使用 Google Analytics 分析 可以看到我的用户来自世界不同地区 但在我的应用程序中 我想根据国家 地区甚至城市提供一些额外的定制 是否可以从浏览器中检测到此信息 这是一个 Py
  • 如何在 Steam WebAPI 中获取应用程序的价格?

    是否可以通过 WebAPI 从 Steam 获取游戏的价格 目前 我们有 API 调用 这意味着我们可以使用JSON http php net manual en book json php for it Appid 57690 海岛大亨
  • Java 日期格式到 JavaScript 日期格式

    我希望能够转换 Java 日期格式字符串 例如日 月 年 07 06 2009 转换为 JavaScript 日期格式字符串 例如dd mm yy 2009 年 7 月 6 日 有没有人以前做过这个 或者知道我在哪里可以找到一些已经做到这一
  • 如何以轻松的方式实现身份验证?

    我正在使用 python 在网络应用程序谷歌应用程序引擎上构建图片日记 用户可以注册并将照片发布到他们的日记中 另外 我正在尝试尽可能地遵循 REST 架构 Web 应用程序的身份验证方案基于以下形式 1 从前端发布用户名 密码2 认证成功
  • 如何向水晶报表中的子报表发送参数

    使用VS 2008 我有两个存储过程 一个用于获取主报告的数据 另一个用于获取子报告的数据 并且两个 SP 使用相同的参数 QuoteID 我已使用 ReportDocument 将参数发送到主报告 但我不知道如何向子报表发送参数 我使用报
  • 无法将序列乘以“float”类型的非 int 错误?

    我正在尝试做一个简单的计算 稍后将在数组上完成 并得到上述错误 无法将序列乘以 float 类型的非 int 8 99 math log 1 0 5 1 2 87 方括号将结果转为 math log 1 0 5 1 2 87 到具有单个元素
  • 如何让 Google Compute Engine 服务器休眠?

    我想使用 GCE 服务器和 VNC 来运行我编写的一些桌面程序 但是 我不想让 GCE 服务器一直运行 以节省金钱 并且我希望保留 VNC 桌面的设置 以节省时间 完成此任务的最简单方法似乎是以某种方式休眠 GCE 实例 有没有办法从脚本或
  • Java 中的包和 C++ 中的库之间有区别吗?

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 有没有办法配置 PuTTY 或其他终端以在下一个输出到 stdout 时闪烁任务栏?

    我专门寻找 PuTTY 的解决方案 但也对其他终端模拟器感兴趣 例如 Gnome Terminal 我的想法是 如果我开始一个tar zxvf为了能够在终端模拟器上设置触发器 将其最小化 然后在下一次输出到 stdout stderr 时
  • 检查 Flask 中 Jinja2 内的变量类型

    我创建的模板文件包含以下内容 if type a 1 b 2 is dict print Oh Yes else print Oh No endif 然后 Jinja2 回应说 TemplateAssertionError no test
  • 是否可以使用Go编译器为其他操作系统分发可执行文件?

    我目前正在Mac OS X上工作 现在我需要构建一个 exe文件 以便Go程序可以在Windows上运行 那么问题来了 如何在 MacOS amd64 下构建 Win X86 的可执行文件 或者不可能这样做吗 如果你不使用 CGo 而使用纯
  • 使用或不使用 C++0x 功能 [重复]

    这个问题在这里已经有答案了 可能的重复 您今天使用 C 0x 的情况如何 https stackoverflow com questions 1754397 how are you using c0x today 我正在与一个团队合作开发一