C++ 声明顺序(在多变量声明行中)

2024-01-07

我在我的 C++ 代码中使用以下内容:

int a = 0, b = a;

我想知道这种行为是否可靠且定义良好(名称声明从左到右的顺序),并且我的代码不会与其他带有未申报的名字 error.

如果不可靠,我会打破这个说法:

int a = 0; 
int b = a;

谢谢。


我相信答案是否定的。

它受核心活跃问题 1342 http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_active.html#1342其中说:

目前尚不清楚现有规范中的哪些内容(如果有的话)要求按声明顺序执行单个声明中的多个 init 声明符的初始化。

我们有非规范性注释[dcl.decl]p3 http://eel.is/c++draft/dcl.decl#3其中说:

...[ 注意:具有多个声明符的声明通常是 相当于相应的声明序列,每个声明都有一个 单一声明者。那是

T D1, D2, ... Dn;

通常相当于

T D1; T D2; ... T Dn;

...

但它是非规范的,它根本不涵盖初始化情况,据我所知,没有规范的措辞说同样的事情。

尽管该标准确实涵盖了以下名称的范围[基本范围.pdecl]p1 http://eel.is/c++draft/basic.scope.pdecl#1其中说:

名称的声明点是在其完成之后立即 声明符及其初始化程序(如果有)之前,除非下面另有说明。 [ 例子:

unsigned char x = 12;
{ unsigned char x = x; }

这里第二个 x 用它自己的(不确定的)值初始化。 — 示例结束 ]

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

C++ 声明顺序(在多变量声明行中) 的相关文章

  • 通过 SocketCAN 进行 boost::asio

    我正在考虑利用升压阿西奥 http www boost org doc libs 1 49 0 doc html boost asio html从a读取数据套接字CAN http en wikipedia org wiki SocketCA
  • 使用 mono/nunit-console/4 在 Mac OS X 控制台上运行测试

    我安装了 Max OS X 10 11 1 上面装有 Xamarin 我编写了简单的测试类 只是为了测试在 Mac OS X 和 Ubuntu 上运行 Nunit 测试 该类实际上有一个返回字符串的方法 using System names
  • 在 C/C++ 中获得正模数的最快方法

    通常在我的内部循环中 我需要以 环绕 方式索引数组 因此 例如 如果数组大小为 100 并且我的代码要求元素 2 则应该给它元素 98 高级语言 例如 Python 可以简单地使用my array index array size 但由于某
  • 何时使用 =default 使析构函数默认?

    尽管对构造函数使用 default 对我来说很清楚 即强制编译器在其他构造函数存在时创建默认构造函数 但我仍然无法理解这两种类型的析构函数之间的区别 那些使用 default 的 那些没有显式定义并由编译器自动生成的 我唯一想到的是 gro
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 如何将“mysql source”命令与 mysql 变量一起使用?

    我需要从 mysql shell 执行一个基于如下条件的 SQL 文件 mysql gt 源 var 其中 var 包含文件名 这不可能 source是MySQL客户端程序在本地识别并执行的命令 变量存在于服务器上 因此客户端不知道什么 v
  • 为什么这个没有特殊字符的正则表达式会匹配更长的字符串?

    我正在使用此方法来尝试查找匹配项 例如 Regex Match A2 TS OIL TS OIL RegexOptions IgnoreCase Success 我得到了真实的结果 我很困惑 我认为这应该返回 false 因为模式中没有特殊
  • ASP.Net Core 内容配置附件/内联

    我正在从 WebAPI 控制器返回一个文件 Content Disposition 标头值自动设置为 附件 例如 处置 附件 文件名 30956 pdf 文件名 UTF 8 30956 pdf 当它设置为附件时 浏览器将要求保存文件而不是打
  • 为什么 set_symmetry_difference 无法与比较器一起使用?

    Example program include
  • C# 构建一个 webservice 方法,它接受 POST 方法,如 HttpWebRequest 方法

    我需要一个接受 POST 方法的 Web 服务 访问我的服务器正在使用 POST 方法 它向我发送了一个 xml 我应该用一些 xml 进行响应 另一方面 当我访问他时 我已经使用 HttpWebRequest 类进行了管理 并且工作正常
  • 如何在标准 WPF ListView 中启用 UI 虚拟化

    我正在使用 NET 4 5 VS2012 并且我有一个 ListView 看起来像这样
  • 如何在c的case语句中使用省略号?

    CASE expr no commas ELLIPSIS expr no commas 我在c的语法规则中看到了这样的规则 但是当我尝试重现它时 int test float i switch i case 1 3 printf hi 它失
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • partitioningBy 必须生成一个包含 true 和 false 条目的映射吗?

    The 分区依据 https docs oracle com javase 8 docs api java util stream Collectors html partitioningBy java util function Pred
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • 矩阵到数组 C#

    这将是转换方阵的最有效方法 例如 1 2 3 4 5 6 7 8 9 into 1 2 3 4 5 6 7 8 9 in c 我在做 int array2D new int 1 2 3 4 5 6 7 8 9 int array1D new
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • php垂直正则表达式搜索

    我有一个描述 n x m 元素矩阵的字符串 如下所示 inputmap B BBB BBB BB FBB BB BB BB F BB BB F B B B B F
  • 生成元素随机顺序的算法

    如何以最低的复杂度随机排列大约 20 个元素的顺序 生成随机排列 Knuth 洗牌算法 http en wikipedia org wiki Knuth shuffle是一个不错的选择
  • Android 获取所选单选按钮的值

    我有一个无线电组rg1我想获取所选单选按钮的值 我知道我可以获得id所选单选按钮的使用方法 if rg1 getCheckedRadioButtonId 1 int id rg1 getCheckedRadioButtonId 这给了我 i
  • c# 到 json 无法在视图中正确呈现

    您好 我正在尝试将字符串发送到看起来像 json 的视图 我正在发送地点列表 class Place public string title get set public string description get set public
  • SQLSTATE[HY000][2002] php_network_getaddresses: getaddrinfo 失败: 提供节点名或服务名,或未知

    我的问题 我在 Mac 上使用 MAMP 和 Git 通过 SQL 数据库连接查看和编辑 PHP 文件 然后将其推送到 Web 服务器 我最近添加了一个文件目录 这是带有 SQl 数据库连接的文件
  • poll 系统调用超时

    附加strace显示了很多这样的消息 poll fd 5 events POLLIN fd 6 events POLLIN fd 7 events POLLIN fd 8 events POLLIN fd 9 events POLLIN f
  • AWS - 从公共 API 网关到 VPC 内 lambda 的路由

    Question 从面向公众的AWS网络中的API网关到VPC子网中的Lambda函数 流量经过哪里 推出 Amazon API Gateway 私有终端节点 https aws amazon com blogs compute intro
  • 您的分支比“origin/master”领先 1 次提交

    我对 Git 有点陌生 我希望有人能在我的场景中解释这条消息的确切含义 为了向您提供一些背景信息 这就是我所做的 我已将存储库克隆到本地计算机 创建了一个新分支并进行了一些更改 然后 我将这些更改添加到暂存 跟踪区域 提交更改 然后将所有内
  • 升级到 Xcode 12 后出现问题:ld:为 iOS 模拟器构建,但链接到为 iOS 构建的 dylib,架构 arm64

    我将 Xcode 升级到 Xcode 12 并构建了我的项目 首先 它会出现如下错误 ld 为 iOS 模拟器构建 但链接到为 iOS 构建的 dylib 文件 Users ethanli Documents Aspira RA com4i
  • 为什么 NHibernate 不支持 MySql 上的批处理

    我找到了一个几个地方 http ayende com blog 3830 nh prof new features disabling ignoring alerts人们说它不受支持 但我找不到根本原因是什么 mysql ado net 提
  • Power BI 嵌入 URL - 多个过滤器

    我一直在尝试使用过滤器查询语法来过滤嵌入的 PBI 报告 filter tableName fieldName eq fieldValue 这对我有用 但是 当我应用多个过滤器时 PBI 报告仅根据最后一个 filter 进行过滤 而其他过
  • 表“MyDjango.django_admin_log”不存在

    我无法在 django 应用程序中创建用户和博客 按下保存按钮时 它只是显示错误 表 MyDjango django admin log 不存在 错误消息如下所示 您最近是否启用了管理历史记录 但忘记运行syncdb 据我所知 Django
  • uilabel 尾部截断

    我正在使用 Objective C 开发一个 ios 应用程序 并且我遇到了 uilabel 的问题 我需要一些帮助 基本上我有一个标签 可以更改大小以适应它将显示的文本 但它有一个可能的最大高度 标签本身始终具有固定宽度 我已打开 UIL
  • 如何将视频从 URI 转换为 byte[]

    我已经捕获了视频并获得了该视频的 URI 如何加载该URI指向的内容到byte 结构 看一下 ByteArrayOutputStream http download oracle com javase 6 docs api java io
  • 3.1.4 textAlignment丢失(Android Studio)

    我有新版本的 Android Studio 3 1 4 但我找不到 textAlignment 我已经在 查看所有属性 中进行了搜索 现在就找人在我能找到的地方吧 谢谢回答 以下是我解决该问题的方法 在 Android Studio 3 3
  • JQuery 自动完成自定义显示多列第 2 部分

    我正在尝试获得类似于以下内容的自动完成功能 Here http jqueryui com demos autocomplete custom data在 jquery ui 的自定义示例中 相反 这将使用 ajax 调用而不是硬编码数据 我
  • 如何在核心数据中保存现有的单例表视图数据?

    我的项目中有这样的单例购物车var fromSharedFood SingletonCart sharedFood food 我正在从 MainVC 到 DetailVC gt MyCartVC 获取所有食物数据 我在 MainVC 中有表
  • 将 React 的不可变助手与 Immutable.js 结合使用

    我正在研究助焊剂应用并正在考虑采用不可变 js https github com facebook immutable js来维持状态 我看到 React 提供了自己的帮助器来更新不可变对象 http facebook github io
  • 如何在 Android Studio 中查找 Kotlin 的最新版本

    我打开了一个前段时间创建的 Android Studio 项目 IDE 说 Kotlin 的 gradle 插件支持 Kotlin 版本 1 2 51 或更高版本 我想将其设置为最新版本 但我必须去 Kotlin 网站 在该网站上不容易找到
  • C++ 声明顺序(在多变量声明行中)

    我在我的 C 代码中使用以下内容 int a 0 b a 我想知道这种行为是否可靠且定义良好 名称声明从左到右的顺序 并且我的代码不会与其他带有未申报的名字 error 如果不可靠 我会打破这个说法 int a 0 int b a 谢谢 我