静态 const 成员初始化中的 sizeof

2024-03-10

我有这样的代码:

class A
{
public:

    unsigned long a;
    static const unsigned long b = sizeof(a); // "error C2327: 'A::a' : is not a type name, static, or enumerator" in VC++
};

我在 VC++ 中遇到编译器错误,在 IAR 中没有错误。 哪个编译器是正确的,C++ 标准对此有何规定?


您的 MSVS 版本相当旧,因此基于此,并假设它们默认为 C++03,它们拒绝您的代码是正确的。我会引用n1905 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf,就我们的目的而言,它非常接近 C++03 标准。

9.4 [类.静态](强调我的)

如果在 static 的定义中使用了 unqualified-id (5.1) 成员声明符 id 后面的成员和名称查找 (3.4.1) 发现 unqualified-id 引用静态成员、枚举数, 或成员类的嵌套类型(或该成员的基类的嵌套类型) 成员的班级),unqualified-id被转换为qualified-id 嵌套名称说明符命名类范围的表达式 从中引用该成员。静态成员的定义 不得直接使用其非静态成员的名称 类或其基类的类(包括作为操作数 sizeof 运算符)。静态成员的定义只能引用 这些成员形成指向成员的指针(5.3.1)或与类 成员访问语法 (5.2.5)。

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

静态 const 成员初始化中的 sizeof 的相关文章

随机推荐

  • ES6 的 webcomponents-lite 在 IE 11 和 10 中不起作用

    我们使用带有 ES6 语法的 WebComponents Web组件 http webcomponents org 填充材料webcomponents lite js 不包括 ShadowDOM 无法在 IE 11 中运行而 webcomp
  • 调整 UILabel 的大小以适合自定义 UITableViewCell 内的文本,无论宽度如何

    我试图让单元格中的标签具有正确的尺寸 无论设备或方向如何 我能够正确调整行高的大小 我还可以正确设置标签高度cellForRowAtIndexPath 并可以在我的日志中查看 但是 当它到达willDisplayRowAtIndexPath
  • 为什么在Python中关闭Sqlite3的游标

    使用Python时关闭游标有什么好处sqlite3模块 https docs python org 2 7 library sqlite3 html module sqlite3 或者它只是一个人工制品数据库API v2 0 https w
  • matplotlib 轴标签格式

    我对轴刻度标签的格式有疑问 我禁用了 y 轴的偏移 ax1 ticklabel format style sci useOffset False 并试图将其采用科学格式 但我得到的只是 0 00355872 但我期望的是这样的 3 5587
  • 在 EmberJS 中构建自动刷新的嵌套列表

    我如何在 EmberJS 中动态生成和更新嵌套列表 我的模型看起来像 App Node Em Object extend id 0 parentId 0 title The parentId代表id直接父元素的 如果我有数据 控制器内容中的
  • 如何在使用“.NETFramework,Version=v4.5.2”的项目中安装 System.Drawing.Common?

    我试图在 NETFramework Version v4 5 2 应用程序中用 C 编写一些单元测试 但所有测试都会给出下一个错误 System IO FileNotFoundException 无法加载文件或程序集 System Draw
  • SDL2 - 垂直同步不起作用

    我在程序中使用垂直同步 在我最小化窗口之前它工作正常 我在创建渲染器时这样做了 renderer SDL CreateRenderer window 1 SDL RENDERER ACCELERATED SDL RENDERER PRESE
  • 为什么 getoldtweets3 库提供 404 错误?

    我正在使用 getoldtweets3 库来抓取电晕爆发信息 我收到这个错误 error C Users Vilius anaconda3 python exe C Users Vilius PycharmProjects Sentimen
  • 使用 JSoup 解析 Html

    我正在尝试解析以下 URL 的 html http ocw mit edu courses aeronautics and astronautics 16 050 Thermal energy fall 2002 http ocw mit
  • 使用 DllImport 调用 C++ 函数

    这是基本的 如何从 C DllImport 调用下面的函数 SubscribeNewsFeed class LogAppender public L Append public LogAppender outfile TestLog txt
  • 如何声明二维字符串数组?

    string Tablero new string 3 3 我需要有一个 3x3 数组排列来保存信息 我如何在 C 中声明它 string Tablero new string 3 3 您还可以使用数组初始值设定项语法在同一行中实例化它 如
  • 如何强制 Gradle 重新下载依赖项?

    如何告诉 Gradle 从存储库重新下载依赖项 通常 您可以使用命令行选项刷新缓存中的依赖项 刷新依赖项 https docs gradle org current userguide dependency management html
  • JAGS 中缺少预测数据模型

    我正在尝试在 JAGS 中编写最简单的缺失数据模型 一个预测变量 有一些缺失的数据点 和一个结果变量 我知道这个例子不是最有用或最现实的 但它可以帮助我在继续处理更复杂的缺失预测数据场景之前解决模型问题 模型和数据如下 但这是编译错误 Er
  • 动态 UILabel 大小 iOS 7 问题

    我正在尝试根据文本高度动态调整标签大小 UILabel 中的高度可以从 0 行到多行不等 我已经为这个问题提出了一个解决方案 该解决方案在 iOS 8 上运行良好 但在 iOS 7 1 上失败 我也试图支持它 该项目中未使用自动布局 所有约
  • 有限字符池中不存在重复字符的正则表达式

    有没有办法编写正则表达式来匹配仅包含某些字符的字符串 并且从不重复这些字符 我已经使用一组代码编写了一些代码来实现此目的 但想知道是否有正则表达式的方法可以做到这一点 例如 如果我只想要一个包含 A B C 的字符串 并且我想匹配一个从不重
  • 如何弃用 Protocol Buffers 中的整个消息?

    根据文档 https developers google com protocol buffers docs proto 已弃用 字段选项 如果设置为 true 则表示该字段已弃用 并且不应由新代码使用 使用示例 message Foo s
  • sqlalchemy 中 sql LIKE 的反向版本[重复]

    这个问题在这里已经有答案了 我所说的 类似的反向版本 是指完全一样这个问题 https stackoverflow com questions 472063 mysql what is a reverse version of like 问
  • django haystack 自定义表单

    我正在尝试使用 django haystack 制作自定义搜索表单 我只是从 haystack 的文档中进行修改 forms py from django import forms from haystack forms import Se
  • geom_smooth() - 缩放 y 轴,因平滑而丢失数据

    抱歉 这个例子不是那么好 但它确实强调了这一点 mtcars tran lt factor mtcars am labels c Man Aut ggplot mtcars aes x hp y mpg group tran geom sm
  • 静态 const 成员初始化中的 sizeof

    我有这样的代码 class A public unsigned long a static const unsigned long b sizeof a error C2327 A a is not a type name static o