如何判断模板类型是基本类型还是类

2023-12-22

我有这样的代码

template <typename T> void fun (T value)
{
    .....
    value.print ();  //Here if T is a class I want to call print (), 
                     //otherwise use printf
    .....
}

现在,要打印该值,如果T是一个类,我想调用该对象的打印函数,但如果T是一个基本数据类型,我只想使用printf。

那么,如何判断Template类型是基本数据类型还是类呢?


你可以使用std::is_class http://en.cppreference.com/w/cpp/types/is_class(并且可能std::is_union)。详细信息取决于您对“基本类型”的定义。查看有关类型支持的更多信息here http://en.cppreference.com/w/cpp/types.

但请注意,在 C++ 中通常会重载std::ostream& operator<<(std::ostream&, T)用于打印用户定义的类型T。这样,您无需担心传递给函数模板的类型是否是类:

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

如何判断模板类型是基本类型还是类 的相关文章

  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • 如何使用MemoryCache代替Timer来触发一个方法?

    以下方法通过等待已运行操作的结果来处理并发请求 对数据的请求可能会使用相同 不同的凭据同时出现 对于每组唯一的凭据 最多可以有一个GetCurrentInternal呼叫正在进行中 当准备就绪时 该呼叫的结果将返回给所有排队的服务员 pri
  • 使用Physics.Raycast 和Physics2D.Raycast 检测对象上的点击

    我的场景中有一个空的游戏对象 带有 2D 组件盒碰撞器 我将脚本附加到该游戏对象 void OnMouseDown Debug Log clic 但是当我点击我的游戏对象时 没有任何效果 你有什么想法 如何检测我的盒子碰撞器上的点击 使用光
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • 私有模板函数

    我有一堂课 C h class C private template
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • javafx.scene.layout.Pane 无法转换为 javafx.fxml.FXMLLoader

    我在尝试从一个场景切换到另一个场景时遇到问题 场景是这样的 当前视图和控制器 login fxml and LoginController 下一步视图和控制器 loggedWindow fxml and UserPanelControlle
  • 为什么我在使用 primefaces 时却使用omnifaces?

    我需要知道使用 OmniFaces 与我目前使用的 PrimeFaces 相比有什么好处 OmniFaces 提供哪些 PrimeFaces 不提供的功能 它们是不同的东西 你可以完美地将它们结合起来 Omnifaces 是 JSF 的一个
  • 来自数据帧的神经网络 LSTM 输入形状

    我正在尝试实施一个LSTM 与 Keras https keras io layers recurrent lstm 我知道 Keras 中的 LSTM 需要具有形状的 3D 张量 nb samples timesteps input di
  • 如何计算Kubernetes集群的节点可分配资源?

    我们有一个集群 其中节点资源不足 导致速度缓慢和过度提交问题 这迫使我们频繁重启节点 我们计划实施节点可分配资源策略 以在系统 kubelet 和应用程序 Pod 之间拆分可用的 CPU 内存和临时存储 遇到了一些有关可分配资源计算的准则h
  • 在 OSX 10.10 Yosemite 上安装 Nokogiri

    我最近升级到 10 10 Yosemite beta 但安装 Nokogiri 时遇到问题 我正在使用 RVM 和 Ruby 1 9 3 我也按照步骤操作here https gist github com vparihar01 58565
  • jQuery:列表在页面加载时扩展

    我一直在寻找非常简单的东西 如何在页面加载时使侧面导航以动画方式展开 但是我平时去的教程网站好像都没有 我能找到的最接近的是这个 jQuery 示例 http codeblitz wordpress com 2009 04 15 jquer
  • 如何使用节点检索 PayPal REST Api 访问令牌

    如何使用节点获取利用 REST Api 所需的 PayPal 访问令牌 一旦您拥有 PayPal 客户端 ID 和客户端密钥 您就可以使用以下内容 var request require request request post uri h
  • 如何在 AKS 上扩展 Cassandra 的 PVC 而不会丢失数据?

    首先我需要说的是 我没有使用 Cassandra 的经验 而且我也不是创建此部署的人 我在 AKS 的集群中运行 Cassandra 有状态集中配置的 PVC 为 1000Gi 目前 这些 Pod 已耗尽存储空间 并且一直处于不健康状态 我
  • 计算 3D 平面的斜率

    我有一组代表不同平面特征的 X Y Z 点 我需要使用法向量计算每个平面的斜率 我认为斜率是由每个平面的法线向量 NV 和假想水平面的 NV 之间的角度给出的 假设我使用的平面方程是 Ax By c z 然后我猜我的平面的法向量是 a b
  • 搜索 NSDictionaries 的 NSArray

    我有一个带有字典的数组 并且需要在数组中搜索 并修改通过字典内的对象名称找到的数组中的特定字典 因此 创建可变数组dictionary 并向该数组添加许多字典 self bloquesArray NSMutableArray alloc i
  • Linq To Entities - 如何过滤子实体

    我有实体Group and User the Group实体有Users属性是用户列表 用户有一个名为IsEnabled 我想编写一个返回列表的 linq 查询Groups 仅包含Users whose IsEnabled是真的 例如 对于
  • WordPress - 删除插件类中定义的操作

    所以我有这个插件代码 class WC List Grid public function construct add action wp array this setup gridlist 20 function setup gridli
  • Makemigrations 错误:django.db.utils.OperationalError:没有这样的表

    当我进行迁移时 我收到以下错误 django db utils OperationalError 没有这样的表 django site Traceback most recent call last File manage py line
  • 旋转 matplotlib Path 对象

    我正在使用 matplotlibPath http matplotlib org api path api html对象创建自定义绘图标记 如所述here https stackoverflow com questions 19448282
  • 使用 jest 测试另一个函数内的函数

    我如何使用 jest 测试下面的代码片段 我正在尝试测试温斯顿自定义格式printf https github com winstonjs winston formats sample js import aa b require thir
  • solr 守护进程

    我想用守护进程运行 solr 我在另一篇文章中看到有一个 init d 脚本可以运行 但它在我的 ubuntu 环境中似乎有问题 每当我尝试使用 etc init d solr start 运行脚本或尝试手动运行以下行时 daemon ja
  • ajax 调用时出现重复标头

    您好 创建了一个对控制器执行 ajax 调用的链接 以便使用 id UpdateCart 更新跨度 问题是 如果用户未经过身份验证 他将被发送到登录页面 并在页面上生成 从图像中可以看出 我的整个标头标签是如何复制并添加到 span 标签内
  • R 重新编译包失败,因为失败

    在我的 Linux 集群上 我在重新编译需要重新编译的 R 包时遇到问题 随着去除libRcpp so在最新版本中 最终目标是 让 R 包 DEseq2 运行 我们已经安装了新版本 g 中的 opt bin目录中有新库 opt lib64
  • Psycopg2:将 CSV 数据复制到具有额外列值的表

    我正在使用copy expert中的方法psycopg2将数据从 CSV 文件复制到 postgresql 表 我有这样的 postgres 表 create table my table cola text colb text colc
  • 如何判断模板类型是基本类型还是类

    我有这样的代码 template