如何判断一个类型是否派生自模板类?

2024-05-24

如何确定类型是否派生自模板类?特别是,我需要确定模板参数是否具有std::basic_ostream作为基类。通常情况下std::is_base_of是完成这项工作的工具。然而,std::is_base_of仅适用于完整类型,不适用于类模板。

我正在寻找这样的东西。

template< typename T >
bool is_based_in_basic_ostream( T&& t )
{
   if( std::is_base_of< std::basic_ostream< /*anything*/>, T >::value )
   {
      return true;
   }
   else
   {
      return false;
   }
}

我确信这是可以做到的,但我不知道如何做到。


我不知道有什么简短的方法。但你可以再次滥用重载

template< typename T, typename U >
std::true_type is_based_impl( std::basic_ostream<T, U> const volatile& );
std::false_type is_based_impl( ... );

template< typename T >
bool is_based_in_basic_ostream( T&& t ) {
  return decltype(is_based_impl(t))::value;
}

它只会检测公共继承。请注意,您可以改为检测派生自ios_base,这可能同样适合您(此测试对于输入流也将是积极的,因此它的适用性有限)

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

如何判断一个类型是否派生自模板类? 的相关文章

  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • HTTPWebResponse 响应字符串被截断

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

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 创建链表而不将节点声明为指针

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

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

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 如何设计以 char* 指针作为类成员变量的类?

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

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何查看网络连接状态是否发生变化?

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

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags

随机推荐

  • 在 Vue.js 2 中将 props 作为初始数据传递的正确方法是什么?

    所以我想将 props 传递给 Vue 组件 但我希望这些 props 将来会从该组件内部发生变化 例如当我使用 AJAX 从内部更新该 Vue 组件时 所以它们仅用于组件的初始化 My cars listVue 组件元素 我将具有初始属性
  • 将 Rails 更新到特定版本

    如何将 Rails 更新到特定版本 我的本地计算机上有 Rails 3 2 2 但我需要更新到版本 3 2 3 如果我执行gem update rails 将会更新到最新的3 2 6版本 我怎样才能做到这一点 gem install rai
  • 如何在 Firefox 30 上调试 Greasemonkey 脚本?

    我一直在为 Youtube 开发一个 JavaScript 片段 它使用 Greasemonkey 并且还导入 Bootstrap 和 jQuery 库 该应用程序必须为每个搜索列表结果添加一个按钮 当用户单击该按钮时 它必须带出用户从其频
  • 打印对象的键和值

    我想从 javascript 对象打印一个键 值对 我的数组中可以有不同的键 因此无法将其硬编码为 object 0 key1 var filters user abc application xyz console log Object
  • get.put 和 get.lazyput 之间的区别

    我是新来的Getx的依赖注入 有人可以向我解释一下它的好处吗 Get put and Get lazyPut 并告诉我它们有什么区别 简短回答 Get put 会放立即地 Get lazyPut 会放在什么时候你需要它
  • 如何在 Angular 8 中使用本地字体系列?

    我的 assets font 文件夹中有一些自定义字体 假设它是 ITC Charter Com Black 我有四种文件 eot svg tff woff 以及如何在我的项目中使用这些字体 我累了 font family ITC Char
  • 使用实体框架、代码优先方法解决结构问题

    我目前正在使用 EF 和代码优先方法从现有系统构建数据库 最好对 核心 类进行最小的更改 因此 我想找到 Structs 和 EF 的解决方法 是否可以以任何方式将 Struct 包装到类中 以便 EF 可以使用此 Struct 中的数据
  • 如何处理多个连接

    我有一个复杂的查询 需要总共 4 个表中的字段 内部联接导致查询花费的时间比应有的时间长得多 我已经运行了一个 EXPLAIN 语句 其可视化结果附在下面 这是我的查询 SELECT pending corrections correcte
  • React Native 的捆绑包是什么?它的用途是什么?

    我试图了解该捆绑包到底是什么以及它的目的是什么 我可以或不能用它做什么 我看到 当您运行命令 react native start 时 打包程序将被初始化 当您使用 react native run android 或 run ios 在设
  • 在 MLMediaLibrary 中加载媒体源时出错

    我在加载时遇到错误mediaSourcesMac OS X 中的属性 我正在尝试使用以下方法获取 Apple Photos 源MLMediaLibrary class 我的应用程序是沙盒的 并且具有图片文件夹的只读权限 我收到错误 MLMe
  • JavaScript 执行 Ruby 脚本

    服务器 客户端是同一个盒子 创建一个 UI 以在本地运行 ruby 测试脚本 我想要执行 ActiveXObject 之类的东西 w new ActiveXObject WScript Shell w run test rb 文件结构如下
  • 使用 Typescript 时的 MongoDB FindOptions

    我正在将 JS 项目转换为 TS 并且在查询集合时遇到 FindOptions 问题 我只想获取集合中所有元素的 ID 这是导致 TS 错误的 TS 代码 import Collection Db Document MongoClient
  • 模拟适用于 Android 的 AWS Amplify Auth API

    我的 Android 应用程序使用AWS Cognito 和 Amplify 身份验证开发工具包用于身份验证 我正在尝试为登录 注册流程编写 JUnit 测试用例 我正在使用 Mockito 框架来模拟类 我从登录开始 我的登录模型如下所示
  • 如果需要保守是什么?

    C 23即将推出if consteval 这将用在哪里以及它与constexpr if if consteval检测是否constexpr函数在常量表达式上下文中调用 这proposal http www open std org jtc1
  • 使用插入符号完全可重现的并行模型

    当我在插入符中运行 2 个随机森林时 如果设置随机种子 我会得到完全相同的结果 library caret library doParallel set seed 42 myControl lt trainControl method cv
  • javascript 中的 RSA 不再支持 ASCII/字节数组

    我正在使用 rsa js v1 0http www cs students stanford edu tjw jsbn http www cs students stanford edu tjw jsbn 在浏览器中加密 ASCII 字符串
  • 什么是 ng-template 以及为什么我要将 *ngIf then else 绑定到它?

    当我将 ngIf 与 then 和 或 else 语句一起使用时 为什么我必须绑定到附加到ng template元素 例如 这有效 div Text to show div
  • 像 Javascript 对象一样循环遍历 F# 记录

    在 javascript 中 我可以使用简单的 for 循环访问对象的每个属性 如下所示 var myObj x 1 y 2 var i sum 0 for i in myObj sum sum myObj i 我想知道我是否可以用 F 做
  • 具有本机依赖项和复制文件的 Maven 项目

    我有以下场景 mylib 是一个库 我有其源代码 因此我想将它们放入 Maven 项目 mylib mylib 中 这个库有一个 jar 依赖项 我只有 jar 并且在 Maven 存储库中找不到它 而且我也不想在那里安装它 为了使其编译
  • 如何判断一个类型是否派生自模板类?

    如何确定类型是否派生自模板类 特别是 我需要确定模板参数是否具有std basic ostream作为基类 通常情况下std is base of是完成这项工作的工具 然而 std is base of仅适用于完整类型 不适用于类模板 我正