在编译时防止标头包含在某些文件中?

2023-12-24

我有一个头文件,我可以控制它的内容。

另外,我有一个接口 I1 (在其他一些文件中定义),其中各种 派生的实现。我想禁止这些实现包括这个 头文件。因此,在编译时,如果包含该文件,编译将会失败, 否则它将照常继续。

所以我有头文件和接口定义(在其他文件中)。我想禁止 接口实现在编译期间包含给定的头文件。

关于我如何实现这一目标有什么建议吗?我可以使用一些聪明的模板/预处理技巧吗?


在头文件中:

#ifndef FOO_IMPLEMENTATION_USE_ONLY
#error This file is for inclusion in the FOO implementation only
#endif

在应该包含它的文件中:

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

在编译时防止标头包含在某些文件中? 的相关文章

  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall

随机推荐

  • 自动布局 UILabels

    我有三个UILabels按照我的习惯UITableViewCell 这可能是一些UILabels将是空的 label text UITableViewCell tableView UITableView tableView cellForR
  • 在 R 中为逻辑回归模型绘制多条 ROC 曲线

    我有一个逻辑回归模型 使用 R 作为 fit6 lt glm formula survived ascore gini failed data records family binomial summary fit6 我在用着pROC用于绘
  • Javascript通知解决方案库:桌面、声音、弹出、标题栏闪烁等

    是否有任何 Javascript 库支持在长时间运行的操作 例如上传 结束时发出通知 通知最好是通用的 这样即使某些技术不起作用 例如桌面通知 浏览器仍然能够引起注意 声音铃声 桌面通知 Chrome Stackoverflow com 风
  • 在Python中解析JSON时出现各种错误

    尝试从需要登录的 url 解析 json 在这里包括我的所有代码 因为我不确定错误在哪里 try import simplejson as json except ImportError import json import urllib2
  • 使用 .after() 添加 html 关闭和打开标签

    我试图通过找到列表的中间点并添加将无序列表分成两列 ul 在那之后 这可能是完全错误的方法 但这是我的想法 我的js看起来像这样 container ul each function var total this children leng
  • 有没有办法在 Racket 中查看 lambda 的主体?

    假设我有这段代码 lang racket define a x x y y z w w z 我凭直觉知道这个 lambda 表达式 扩展地 等于 z z 我的问题是是否有办法打印出正文a如果我想看看 Racket 在内部简化了多少功能 更多
  • 如何从数组元素中删除字符?

    我有一个像这样的数组 ee 3 4 22 22 我想删除逗号 或将其替换为 34使数组看起来像这样 ee 3 4 22 22 or this ee 3 4 34 22 34 22 34 原因是我试图将该数组从 Ruby 传递到 JavaSc
  • Asp Core 发布时错误的程序集重定向

    使用 Visual Studio 发布我的 ASP Core 项目时 config文件与我的可执行文件一起创建 The config包括几个bindingRedirect像这样
  • NIO SocketChannel 读取超时? [复制]

    这个问题在这里已经有答案了 如果连接建立后一段时间内没有收到数据 设置超时关闭 NIO SocketChannel 的最佳方法是什么 Either 您正在使用一个Selector 在这种情况下 您可以选择一个可以使用的超时 如果超时 sel
  • 如何手动创建 Apache Windows 服务

    我在尝试安装另一个 Apache Web 服务器时不小心删除了 Apache Windows 服务 有谁知道如何从 cmd 创建另一个 Apache Windows 服务 我尝试了 sc create 但最后缺少一个脚本 例如 k star
  • @PreAuthorize 和 hasPermission() 执行代码两次

    我想使用 PreAuthorize Spring 注释来控制应用程序中的访问 问题是 我有很多条件不取决于请求参数 而是取决于数据库实体 概述 我有一个Route实体 具有User owner场地 您可以删除Route仅当您是所有者时 我已
  • 为什么 tanh 在我的机器上比 exp 快?

    这个问题源于一个单独的问题 https stackoverflow com questions 43033593 why is using tanh definition of logistic sigmoid faster than sc
  • 如何从 R 中的帮助页面获取文本数据?

    在全球范围内 我有兴趣从 R 文档中获取所有文本数据 将它们放入数据框架中并应用文本挖掘技术 包级别 假设我对一个包感兴趣 例如 utils 并且我想获取向量中的所有文本数据 这有效 package d lt packageDescript
  • Omnipay PayPal Express 是否有信用卡功能?还是只能在 PayPal Pro 中使用?

    这个问题可能类似于THIS https stackoverflow com questions 28218397 using paypal pro in omnipay and THIS https stackoverflow com qu
  • 如何使用 nltk 从字符串中提取名称

    我正在尝试从非结构化字符串中提取名称 印度 这是我的代码 text Balaji Chandrasekaran Bangalore Senior Business Analyst Lead Business Analyst An accom
  • Stub_chain 与 should_receive 一起

    我正在尝试测试方法调用链中的方法之一是否获得特定参数 在下面的代码中 例如 MyModel 必须接收该方法的参数 0offset 不幸的是 下面的代码不起作用 似乎不可能混合should receive和stub chain 我该如何解决这
  • 32 位系统上 4GB 限制背后的数学原理

    我有一个与 32 位内存地址相关的非常基本的问题 我的理解是2 32是32位系统上可能的内存地址的最大数量 我感到困惑的是我们如何从这个数字达到所谓的 4GB 限制 在我的研究中我看到有些人 http www zdnet com blog
  • 有没有办法用 git diff 显示*仅*空白差异?

    我想在自己的提交中提交所有空白更正 以保持其他所有内容不受空白更改的影响 很容易过滤out空白差异与git diff使用这样的东西 git diff ignore all space ignore space change ignore s
  • 使用 Maven 隐藏清单条目

    当使用maven构建jar文件时 它会在META INF MANIFEST MF中创建一个清单文件 目前其内容为 Manifest Version 1 0 Archiver Version Plexus Archiver Built By
  • 在编译时防止标头包含在某些文件中?

    我有一个头文件 我可以控制它的内容 另外 我有一个接口 I1 在其他一些文件中定义 其中各种 派生的实现 我想禁止这些实现包括这个 头文件 因此 在编译时 如果包含该文件 编译将会失败 否则它将照常继续 所以我有头文件和接口定义 在其他文件