Obj-C++:用于识别 Objective-C 类的模板元函数?

2024-02-11

使用 Objective-C++,我可以写一个 C++IsObjectiveCClass<T>模板元函数使得IsObjectiveCClass<T>::value当且仅当 T 是 Objective-C 类时才为真?

从语言的 C/C++ 子集的角度来看,ObjC 类到底是什么?当在 C / C++ 上下文中使用时,MyClass* 指针的行为似乎与普通 C 指针相似;这是否意味着 MyClass 也是 C 类型?


这是一个简单的解决方案,应该适用于大多数(如果不是全部?有人能想到什么时候可能会失败吗?)情况(它通过 xcode 4.2 使用 clang 3.0 - 使用 typedef 而不是使用早期 clang 版本的别名):

template<class T> struct IsObjectiveCClass 
{ 
  using yesT = char (&)[10];
  using noT = char (&)[1];
  static yesT choose(id);
  static noT choose(...);
  static T make();
  enum { value = sizeof(choose(make())) == sizeof(yesT) }; 

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

Obj-C++:用于识别 Objective-C 类的模板元函数? 的相关文章

  • RestKit:BOOL 值

    我有一个NS ENUM保存清单的状态 这两个属性是Pending and Completed typedef NS ENUM NSUInteger ChecklistStatus Pending Completed 我正在尝试获取状态并将其
  • 如何在 iPhone 窗口应用程序中显示另一个窗口

    首先 我是 Objective C 和 iPhone 编程的新手 有事我无法去上班 我有一个 iPhone 窗口应用程序 在主窗口中有一个按钮 我想在单击按钮时显示另一个窗口 我已将事件与我的控制器绑定 我只是不知道如何在事件中显示我的另一
  • 为什么编译器不对同一翻译单元中的 ODR 违规发出警告

    在同一个翻译单元中 ODR 问题很容易诊断 那么为什么编译器不会针对同一翻译单元中的 ODR 违规发出警告呢 例如在下面的代码中https wandbox org permlink I0iyGdyw9ynRgny6 https wandbo
  • 使用 UIControl (特别是 UIButton)时如何对目标进行排序?

    在我的应用程序中我有多个UIButtons我为此添加了目标 事实证明 首先执行最近添加的目标 然后执行其余的目标 例如 采用以下代码 button addTarget self action selector someAction forC
  • 关于将 Objective C 代码添加到 swift 动态框架的澄清

    我有一个 swift 动态框架 当前正在链接到另一个用 Objective C 编写的框架 这可以工作 但很烦人 因为 Objective C 框架实际上只有 2 个文件 我想知道是否有办法将其带入我的 swift框架 如果这是我会使用的应
  • 如何在 iPhone 中使用彩信发送音频?

    我瞪大了眼睛MMS在 iPhone 中 但我没有找到太多这方面的信息 大多数发现都与图像有关 我想使用发送音频MMS in iPhone using ios sdk 可以这样做吗 我有以下疑问MMS 如何识别所有MMS音频文件在iPhone
  • 符号化 iPad 崩溃日志后回溯仍然不可读

    我有这些崩溃日志 在我将它们放入管理器中后 会自动进行符号化 但结果始终相同 iOS 调用得到符号化 而我的应用程序调用则没有 我尝试将 Dym 和应用程序文件复制到同一文件夹中 删除并再次复制回来 没有任何帮助 知道发生了什么事吗 所以我
  • iOS 低内存崩溃,但内存使用率非常低

    这已经困扰我很长时间了 我的应用程序运行占用大约 2 74MB 内存 没关系 但当它创建 UIWebView 时 它会增加到大约 5 87MB 并继续崩溃 这些是在我的第一代 iPad 上运行时仪器中的实时字节下给出的值 我找不到崩溃日志
  • 模板定义中的友元函数

    我的问题有点相关this https stackoverflow com questions 1297609 overloading friend operator for template class one 我想重载某些类的运算符 te
  • 未作为最后一个参数传递时的模板参数包推导

    考虑以下代码 include
  • 如何本地化 iOS 故事板

    我有一个包含一些视图的 iPhone 故事板 例如 导航项标题名为News 应翻译为其他语言 当我向故事板添加新的本地化版本时 它会为新语言创建当前故事板的副本 在这里我可以更改导航项的标题 但对我来说它似乎不太有用 如果我的故事板包含 1
  • 如何从标签栏控制器上方显示 UIActionSheet 视图?

    我需要在选项卡栏控制器上方显示操作表 我的意思是 即使操作表视图处于可见模式 我也能够看到选项卡栏控制器 因此 请建议如何从选项卡栏控制器上方查看 是否可以 其次 如何更改操作表的背景颜色和取消按钮背景颜色 请帮我 谢谢你 马丹 莫汉 要从
  • NSString 对象的最大长度是多少?

    NSString 对象中可以保存的最大字符串大小是多少 这会动态变化吗 我假设 NSString 的硬限制是 NSUIntegerMax 个字符 因为 NSString 的索引和大小相关的方法返回 NSUInteger 由于当前能够运行 i
  • 类模板上的运算符重载

    我在为模板类定义一些运算符重载时遇到一些问题 让我们以这个假设的类为例 template
  • 优雅模板专业化

    是否有一种优雅的方法可以根据模板参数之一来专门化模板 Ie template
  • 按升序对 NSDictionary 进行排序

    我正在尝试排序NSDictionary按升序排列 我正在使用这段代码 NSDictionary valDict self mGetDataDict key rowKey for NSString valueKey in valDict al
  • 为什么 Apple 建议以编程方式创建模态导航控制器?

    以模态方式呈现导航控制器时 以编程方式创建和配置导航控制器对象通常更简单 虽然您也可以使用 Interface Builder 来执行此操作 但通常不建议这样做 事实上 因为我的导航控制器很简单 我宁愿在IB中自定义视图 虽然我不知道确切的
  • 如何将设备上未保存的图片上传到dropbox帐户?(IOS)

    Dropbox RestClient 仅保存文件 所以我想先将图像保存在本地文件夹中 然后上传它 结果它保存了文件 但它已损坏 NSString localPath NSBundle mainBundle pathForResource I
  • Objective-C 点表示法与类方法?

    请注意 我特别指的是点表示法与类方法一起使用 而不是与实例方法一起使用 出于好奇 我想看看如果我尝试在类方法中使用 Objective C 点表示法语法会发生什么 我的实验如下 import
  • C++:为什么 numeric_limits 对它不知道的类型起作用?

    我创建了自己的类型 没有任何比较器 也没有专门化std numeric limits 尽管如此 由于某种原因 std numeric limits

随机推荐

  • bigQuery Google Cloud 如何与其他用户共享数据集?

    我使用我的 userA 帐户在 Google Cloud 中定义了一个 bigQuery 数据集 我希望属于同一组的同事 userB 能够查看我定义的数据集 使用bq命令行界面中 userB 可以看到项目 但看不到数据集 如何与用户B共享用
  • 如何获取表单内所有输入的ID?

    如何获取数组中表单内输入元素的所有 id ids myform input id map function return this id get
  • Angular:嵌入、设置SVG元素的颜色

    我有一个component html这超出了我的 svg 组件
  • TinyMCE gulp 配置

    我正在构建一个 Web 应用程序 我想使用 TinyMCE 我正在使用 gulp 和 browserify 我已经通过 npm 下载了 TinyMCE 并且在我的 app js 文件中需要它并运行gulp命令但我收到此错误Failed to
  • 数组无法解析?这是构建路径问题吗?

    当我打字时Arrays sort arr 在 Eclipse 中 我收到此错误Arrays cannot be resolved当我左键单击红色下划线时Arrays我不明白这个词import java util Arrays正如预期的那样
  • Spring AOP:仅建议使用上下文 Bean?

    我是 Spring AOP 的新手 我尝试使用方面进行日志记录 这是我的配置 方面 Aspect public class LoggerAspect Pointcut execution aop LoggerAspTest private
  • 如何在不安装条形码扫描仪应用程序的情况下使用ZXing库

    我一直在开发一个 Android 应用程序来扫描条形码和 QR 码并将结果发送到其他应用程序 HTTP 我已经通过互联网阅读了大部分文档 并在 stackoverflow 中阅读了它并使其正常工作 我可以在我的设备上运行独立的 zxing
  • 原则 2 多级继承

    我在多级继承方面遇到一些麻烦 ORM Entity ORM Table name et date ORM InheritanceType JOINED ORM DiscriminatorColumn name type type strin
  • Android 对话框 - 自定义背景而不是变暗或模糊

    我创建了自己的自定义对话框 它工作正常 但我想将变暗的背景更改为自定义图案 例如图像文件或 xml 形状 我怎样才能做到这一点 请注意 我不想改变调光强度 但我只想用一种模式替换这种调光 我找到了解决这个问题的方法 我从 vipul mit
  • 动态创建 Yii FormModel 对象 (CFormModel)

    我正在开发一个涉及在高抽象级别生成表单的应用程序 它是一个 CMS 应用程序 我想动态创建 CFormModel 对象并即时设置表单字段 我想我可以通过扩展 CFormModel 然后动态创建代表表单字段的类属性 Yii 行话中的 属性 来
  • 从 url 加载 Rdata 文件

    我在加载文件时遇到困难 因此它不会丢失其尺寸 所以这就是我现在所处的位置 gt mood data lt read table http www psychology mcmaster ca bennett psy710 datasets
  • 检查 android.graphics.path 与其自身的交集

    我想检查路径是否与自身相交 如果是 则碰撞在 x y 只是为了突出显示 我如何检查一条路径是否与另一条路径相交也非常有趣 这是一个屏幕截图 可以更好地解释我的意思 https i stack imgur com JrEmN png http
  • Visual Studio Cordova:打包 IOS 应用程序时,如何将配置文件添加到 XCode 的“构建设置”的代码签名部分?

    使用 Visual Studio Cordova 时 我按照以下说明将应用程序发布到 Apple App Store http taco visualstudio com en us docs tutorial package publis
  • iOS 连接数据库的正确架构?

    我是一名 Web 开发人员 正在着手创建移动 iOS Android 应用程序 因此 我想要了解的是应该如何构建移动应用程序来访问 发布 更新 删除 存储在中央服务器上的数据 出于说明目的 假设我正在创建一个移动食谱应用程序 名为 MyRe
  • 为 Selenium 创建 HTTP Basic auth Chrome 扩展(MWE 可用)

    我正在尝试使用 Google Chrome 运行 Selenium 测试 我希望使用 HTTP 基本身份验证登录 这在 Selenium 中没有实现 因此建议加载扩展 我正在使用来自的代码 https github com RobinDev
  • Linq to SQL 外键

    数据库表的 DDL Users id int identity name varchar unique PCs id int idnetity name varchar unique userid FK to Users Apps id i
  • 将哈希表转换为字符串数组

    如何将哈希表转换为字符串数组 假设 l table 是一个哈希表 如果我尝试 l array l table format table 那么 l array 是一个数组 但是一个 FormatEntryData 对象的数组 如果我做 str
  • 多线程环境下的增量和减量

    我正在尝试在多线程环境中 int 变量的经典增量 减量 这是我的示例代码 public class SyncIncDec public static void main String args SyncCounter count new S
  • 用 Pig Latin 每组写入一个文件

    问题 我有许多包含 Apache Web 服务器日志条目的文件 这些条目不按日期时间顺序排列 并且分散在文件中 我正在尝试使用 Pig 读取一天的文件 按日期时间对日志条目进行分组和排序 然后将它们写入以其包含的条目的日期和小时命名的文件中
  • Obj-C++:用于识别 Objective-C 类的模板元函数?

    使用 Objective C 我可以写一个 C IsObjectiveCClass