关于静态数据成员和成员函数定义的 Extern 关键字,C++

2024-03-16

C++标准是否允许extern静态数据成员和成员函数定义上的关键字(假设链接匹配)?例如:

struct A
{
    static int a;    // external linkage
    void f();        // external linkage
};

extern int A::a;
extern void A::f() {}

The extern不允许关键字作为类成员的存储类说明符。来自[dcl.stc]/5:

[...] 这extern说明符不能用在类成员或函数参数的声明中。 [...]

此外,定义也是声明,参见。 [基本.def]/2:

声明是一个定义除非[规则]。

因此,extern不允许在任何形式的类成员声明上使用关键字作为存储类说明符,无论是在作为类定义一部分的第一个声明上,还是在作为外联成员定义一部分的后续声明上。

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

关于静态数据成员和成员函数定义的 Extern 关键字,C++ 的相关文章

  • Visual Studios 2015 中的“恢复 NuGet 包”没有执行任何操作

    我将解决方案从 SVN 拉入 Visual Studios 2015 代码中的一些 使用 引用出现错误 因此我尝试在右键单击 解决方案 中的解决方案时运行 恢复 NuGet 包 选项探索者 这没有任何作用 我必须手动进入 nuget 管理器
  • 更新 Azure Blob 上的 LastModified

    我正在移植代码以使用 C 中的 Azure 存储 SDK 传统上 我称其为更新修改文件的上次写入 修改时间 File SetLastWriteTimeUtc fileName lastWriteTimeUtc 要更新 blob 的上次修改时
  • strtok() 使用安全吗[重复]

    这个问题在这里已经有答案了 我读到了很多负面的东西strtok 有人说它已经过时 有人说它不是线程安全的 等等 那么真相是什么 我可以使用吗strtok 它是线程安全的吗 Note 我正在使用 Visual C 您可以使用它 它是标准库的一
  • 信号与信号2

    我的应用程序可能会受益于使用 boost 的信号库之一而不是本土解决方案 该应用程序是多线程的 但执行信号处理的部分是单线程的 如果多线程不是问题 是否有任何理由更喜欢 Boost Signals2 而不是 Boost Signal Boo
  • C++ 指针和对象实例化

    这有效 MyObject o o new MyObject 而这并不 MyObject o new MyObject Why 关键词new 返回一个指针 http msdn microsoft com en us library kewsb
  • 无法将参数从 `const char *` 转换为 `char *`

    鉴于此代码 void group build int size std string ips Build the LL after receiving the member list from bootstrap head new memb
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • 如何在 Visual Basic DLL 和 C++ DLL 之间创建隔离/免注册 COM?

    我必须在 C DLL 中使用 VB COM DLL 我弄清楚了如何从 C DLL 访问 VB COM DLL 并且它可以工作 现在我遇到了一个问题 我必须使用隔离的 COM 免注册 COM 因为我无法在必须使用它的每台 PC 上注册 DLL
  • 查找方法不适用于 EF6.1 模拟

    我已经使用这些 msdn 指南设置了模拟 使用模拟框架进行测试 EF6 及以上 http msdn microsoft com en us data dn314429 var bsAc db BusAcnts FirstOrDefault
  • ASP.net WebForms - 在标记中使用 GetRouteUrl

    我一直在尝试弄清楚如何将路由功能与 ASP net 4 0 WebForms 一起使用 我将一条路线添加到我的路线集合中 void Application Start RegisterRoutes RouteTable Routes voi
  • 节点*链表中的下一个

    我是数据结构和算法的新手 我遇到了以下代码 typedef struct node int data node next 谁能告诉我为什么我们要声明节点 next next 不能声明为 int next 吗 因为你希望能够做到n gt ne
  • 在 C# .NET 中对非 ASCII 字符进行编码

    我想向我的应用程序发送的电子邮件添加自定义标头 标头名称只能包含 ASCII 字符 但对于值和用户可能会输入 UTF 8 字符 我必须对它们进行 Base64 编码 此外 我还必须将它们解码回 UTF 8 以便在 UI 中向用户显示它们 最
  • 从具有相同属性的另一个对象创建对象

    我有一个 C 对象 可以说有 20 个属性 它是数据契约的一部分 我还有另一个具有类似属性的业务实体 我想从响应对象中填充该实体 除了将一个对象的每个属性分配给另一个对象的相应属性之外 还有其他方法可以做到这一点吗 是的 看看自动映射器 h
  • 在特定线程上运行工作

    我想要一个特定的线程 任务队列并在该单独的线程中处理任务 应用程序将根据用户的使用情况创建任务并将其排队到任务队列中 然后单独的线程处理任务 即使队列为空 保持线程活动并使用它来处理排队任务也至关重要 我尝试过几种实现TaskSchedul
  • 实体框架读取列但阻止其更新

    给定一个数据库表 其中有一列包含历史数据但不再填充 实体框架中是否有一种方法可以读取该列 但在使用相同的模型对象时防止它被更新 例如我有一个对象 public class MyObject public string CurrentData
  • 如果仅使用第一个元素,是否必须为整个结构分配内存?

    我有一个结构 其中第一个元素被测试 并且根据其值 结构的其余部分将被读取或不会被读取 在第一个元素的值指示结构的其余部分不会被读取的情况下 我是否必须为整个结构或仅第一个元素分配足够的内存 struct element int x int
  • 如何通过代理将套接字连接到http服务器?

    最近 我使用 C 语言编写了一个程序 用于连接到本地运行的 HTTP 服务器 从而向该服务器发出请求 这对我来说效果很好 之后 我尝试使用相同的代码连接到网络上的另一台服务器 例如 www google com 但我无法连接并从网络中的代理
  • 为什么 C++ 标准没有将 sizeof(bool) 定义为 1?

    Size of char signed char and unsigned char由 C 标准本身定义为 1 个字节 我想知道为什么它没有定义sizeof bool also C 03 标准 5 3 3 1 说 sizeof char s
  • 使用任务的经典永无止境的线程循环?

    给出了一个非常常见的线程场景 宣言 private Thread thread private bool isRunning false Start thread new Thread gt NeverEndingProc thread S
  • 如何根据当前日期时间发现财政年度?

    我需要基于当前或今天的日期时间的财政年度 假设我们认为今天的日期是10 April 2011 那么我需要输出为Financial Year 2012在某些情况下 我需要以短格式显示相同的输出FY12 我想以两种方式显示 在我们的要求中 考虑

随机推荐

  • JavaFX 2.0 TabPane:选项卡位于左侧并保持选项卡标题水平

    我正在尝试为 Web 应用程序开发 GUI 并且想设置一个 TabPane 其中选项卡放置在左侧 保持选项卡标题水平 我已经找到了如何将选项卡放在左侧 但经过多次搜索后 我没有成功将标题设置为右对齐 它们仍然是垂直的并且难以阅读 我该如何解
  • Android Studio 项目视图中的重复文件

    我有一个奇怪的问题 项目特定的根级别文件 gitignore gradlew gradle properties 等 在 Android Studio 的项目视图中显示两次 有人知道如何解决这个问题吗 我尝试重新导入项目 删除 iml 和
  • 实体框架事务

    我有一个程序在两台服务器上重复运行 我需要在程序中选择和更新数据库记录 因此我需要来自EF的表锁或事务 否则程序的每个副本都可以选择和修改相同的记录 虽然第一个副本使数据库发生更改 但另一个副本不应运行相同的代码部分 我在 EF 中找到了
  • 有多少 Java 6 API 是由 Android 实现的?

    我想将一个小型开源AES加密类移植到Android上 如果Android的API尽可能接近Java 6 API 那么我的工作量会减少很多 实现了多少 或可参考 因为我尝试在谷歌上搜索这个内容 但我还没有想出任何有用的东西 恕我直言 一般来说
  • 代理下使用 HTTPClient 4.5 的 Resttemplate 连接超时

    如何设置超时时间 我已经设置了几乎所有的超时配置 通常没有代理就可以正常工作 当我使用代理连接详细信息进行连接时 会出现问题 日志显示正在连接 但未收到回复 2020 03 04 19 53 39 751 DEBUG main org sp
  • Bash:如何从参数设置变量并使用默认值

    很明显 使用 shell 脚本可以通过多种方式完成这类事情 比大多数编程语言都多 因为有各种不同的变量扩展方法和程序 例如test and and etc 现在我只是在寻找 DIR 1 or 这意味着 我的 DIR 变量应该包含第一个参数中
  • Android 弹出窗口不填满屏幕尺寸?

    I am trying to make a simple pop up window But every time I make one it ends up being super small and not the length I w
  • 如何使用 CodeIgniter 设置日期格式

    我试图弄清楚我在这里做错了什么 我想要格式化date published我的查询中的字段 我得到了t string syntax error在我的 IDE 中 this gt db gt select site news articles
  • eclipse intellij 可以将 Github 用于同一项目

    是否可以在 GitHub 中创建一个项目 并且使用 Eclipse 和 Intellij 等不同 IDE 的两个团队可以使用 github 配置项目并可以同时在同一个项目上工作 我已经搜索过但无法找到正确的解决方案 是的 您甚至可以版本 y
  • 较大图像文件中的质量更好的缩略图

    我将其他网站的图像显示为缩略图 为此 我将它们显示在较小的 img 标签中 以便浏览器减小尺寸 问题是这些图像的质量 我无法控制 下降了 而且它们在 FF 和 Safari 中看起来比在 IE 中好得多 有没有办法让这些图像看起来更好而不将
  • 组合 .csv 并将文件名添加为列

    这是我的担忧 我有一个包含多个 csv 文件的文件夹 我想将它们组合 合并到一个 csv 文件中 但我需要将每个 csv 的文件名添加为 csv 本身的一列 以便我可以知道哪个条目来自合并文件中的哪个 csv 文件 我没有编码经验 但是我在
  • 如何随机选择地球表面的一个点?

    正如标题所说 如何无偏差地随机选择地球表面的一个坐标 执行 rand 90 90 rand 180 180 的简单解决方案将有利于极地地区而不是赤道地区 听起来您正在寻找球体上的均匀随机分布 http mathproofs blogspot
  • 在页面之间来回发送 PHP 变量

    我创建了一个注册表单 它成功地将其变量从注册页面 go gold php 传递到摘要 验证页面 go gold summary php 数据正确显示在第二页上 但是 我希望能够使用图像按钮返回到注册页面 以防用户输入错误 返回 原始表单现在
  • 如何克服Excel中超链接的限制?

    我有超过 100000 个单元格的链接列表 我必须为所有这些内容提供超链接 但在 Excel 中存在限制65530 https support microsoft com en us office excel specifications
  • 未暂存的更改将文件显示为已删除,即使该文件存在

    我的存储库中的一个文件让我非常头疼 git status在 未暂存提交的更改 下将其显示为 已删除 并且还在 未跟踪的文件 下显示完全相同的文件 该文件肯定存在于我的磁盘上以及远程存储库上 如果我删除该文件 未跟踪的文件 中的条目就会消失
  • 永不过期的不记名令牌

    是否可以定义永不过期的 ASP NET Web API 2 不记名令牌 有什么线索吗 我认为我们也可以通过使用下面给出的代码来实现这一点 AccessTokenExpireTimeSpan TimeSpan MaxValue 据 MSDN
  • 没有代理/存根 DLL 的进程外 COM 服务器?

    我正在学习如何实现进程外 COM 服务器 并发现了这篇代码项目文章 构建本地 COM 服务器和客户端 分步示例 http www codeproject com Articles 8679 Building a LOCAL COM Serv
  • 伪类:hover 在 IE7 中不起作用

    我有这样一个简单的代码 div class div1 div class div2 Foo div div class div3 div class div4 div class div5 Bar div div div div 和这个CS
  • CoreData 警告:多个 NSEntityDescription 声明 NSManagedObject 子类

    我突然在 iOS12 XCode 9 上收到一堆警告 为什么有多个托管对象模型 该应用程序只有一个 xcdatamodeld 文件 但模型中有多个版本 这是 iOS12 Coredata 的新功能吗 我可以采取什么措施来防止此警告 还是应该
  • 关于静态数据成员和成员函数定义的 Extern 关键字,C++

    C 标准是否允许extern静态数据成员和成员函数定义上的关键字 假设链接匹配 例如 struct A static int a external linkage void f external linkage extern int A a