C++成员函数模板特化问题

2023-11-14

C++成员函数模板特化问题
1.类似代码写法:
#include <iostream>
#include <string>

class test
{
public:
  template <typename T>
  void print(T t);
  template <>
  void print<std::string>(std::string value);
};

int main(int argc, char* argv[])
{
  test out;
  out.print("hello,world");
}

g++出错提示为:explicit specialization in non-namespace scope ‘class test’。原因分析,c++标准规定明显特化必须在类所在的命名空间。

修改成下面写法:
#include <iostream>
#include <string>

namespace pp
{
class test
{
public:
  template <typename T>
  void print(T t);  
};

template <typename T>
void test::print(T t)
{
  std::cout<<t<<std::endl;
}
template <>
void test::print<std::string>(std::string value)
{
  std::cout<<"string special"<<std::endl;
}

}
int main(int argc, char* argv[])
{
  pp::test out;
  out.print<std::string>("hello,world");
}
g++不再报错,也执行正确。
维基相关知识网址:http://zh.wikipedia.org/wiki/%E6%A8%A1%E6%9D%BF_(C%2B%2B)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++成员函数模板特化问题 的相关文章

随机推荐

  • 简单实现数据库DAO

    一 什么是DAO DAO Data Access Object 是一个数据访问接口 数据访问 顾名思义就是与数据库打交道 夹在业务逻辑与数据库资源中间 DAO是把对数据库的操作全部封装在里面 DAO把底层的数据访问逻辑和高层的业务逻辑分开
  • 原神服务端搭建架设教程win系统(附客户端+服务端+环境配置)

    原神服务端搭建架设教程win系统 附客户端 服务端 环境配置 大家好 我是艾西原神一款开放世界冒险3D游戏以七种元素 分别为风 雷 岩 火 水 草 冰 交汇的幻想世界 提瓦特 创造的游戏世界 以角色扮演的RPG游戏还是有非常多的玩家热爱 以
  • ERROR conf.Configuration: error parsing conf mapred-site.xml

    Hadoop进行namenode格式化时报错 ERROR conf Configuration error parsing conf mapred site xml com ctc wstx exc WstxParsingException
  • MTCNN

    Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks 使用多任务级联卷积网络的联合人脸检测和对齐 摘要 由于各种姿势 光照和遮挡
  • Java基础 类访问权限

    转载自https www cnblogs com jinggod p 8425423 html java基础 七 java四种访问权限 引言 Java中的访问权限理解起来不难 但完全掌握却不容易 特别是4种访问权限并不是任何时候都可以使用
  • Visual Studio 远程调试正在运行的进程

    使用场景 当项目在测试环境上有bug 需要运行代码调试一下 这时就需要在测试环境上安装一个调试工具 然后在本地运行代码 远程链接到测试环境服务器来调试代码 假期鸽了这末长的时间 方式一 工具下载 https visualstudio mic
  • PHP 并发场景的几种解决方案

    PHP 并发场景的几种解决方案 在秒杀 抢购等并发场景下 可能会出现超卖的现象 在 PHP 语言中并没有原生提供并发的解决方案 因此就需要借助其他方式来实现并发控制 列出常见的解决方案有 使用队列 额外起一个进程处理队列 并发请求都放到队列
  • AI换脸小程序是否能实现更高水平的面部融合?

    随着人工智能技术的不断进步 面部识别技术在AI换脸小程序中的应用也日益成熟 这项技术的发展趋势逐渐朝着实现更加精准和逼真的面部融合效果 本文将探讨当前面部识别技术的发展趋势 并分析其在AI换脸小程序中实现更高水平的面部融合效果的可能性 一
  • flutter之Container

    Container类似于iOS中的UIView 具有绘制 定位 调整大小功能 通常用来装载其它子控件 假如Container没有子控件 它将自动填充整个屏幕 反之 会根据子控件大小 调整自身大小 从而达到自适应效果 注意 使用Contain
  • Unity PlayerSetting Android打包设置介绍

    Unity 版本 2018 3 0f2以下部分内容来自Unity文档和网上资料 如有错误 请在评论区指正 我看到后会进行改正和更新 Icon 后续更新 略 Resolution And Presentation 后续更新 略 Splash
  • python实现链表的旋转

    python实现链表的旋转 链表是一种常用的数据结构 实现起来也不难 但当我们需要将链表中的元素旋转时 就会有一些困难 本文介绍基于python语言的链表旋转实现方法 实现思路 链表旋转可以通过移动节点的位置来实现 我们可以找到需要旋转的位
  • 第二节 分支和循环语句

    第二节 分支和循环语句 目录 一 什么是语句 二 分支语句 选择结构 三 循环语句 本章重点 分支语句 if switch 循环语句 while for do while goto语句 一 什么是语句 C语句可分为以下五类 表达式语句 函数
  • STM32关于编译不通过,错误提示 Error: Undefined symbol SystemInit (referred from startup_stm32f10x_md.o

    今天正式开始学习stm32的开发板 在学习的时候 发现连例程都不能够通过编译 然后测试了好久 发现都是这种错误 然后上网查找到了答案 找到了解决的方法 这里来记录一下 转载来自 http blog sina com cn s blog 54
  • echarts在data里定义的formatter函数失效问题

    在echarts官方运行的时候是生效的 拿到项目里循环之后就失效了 后来井排查发现 是因为循环的时候 使用了JSON stringify this eqpOption 函数 导致 echarts的option里默认itemStyle的方法都
  • 构建可扩展的应用:六边形架构详解与实践

    面试题分享 云数据解决事务回滚问题 点我直达 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java python面试题 项目实战 AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转clo
  • 第十届蓝桥杯省赛C++B组 完全二叉树的权值

    试题 G 完全二叉树的权值 时间限制 1 0s 内存限制 256 0MB 本题总分 20 分 问题描述 给定一棵包含 N 个节点的完全二叉树 树上每个节点都有一个权值 按从上到下 从左到右的顺序依次是 A1 A2 AN 如下图所示 现在小明
  • 机器学习好伙伴之scikit-learn的使用——学习曲线

    机器学习好伙伴之scikit learn的使用 学习曲线 什么是学习曲线 sklearn中学习曲线的实现 应用示例 什么是学习曲线呢 其内容主要包含当训练量增加时 loss的变化情况 什么是学习曲线 学习曲线主要反应的是学习的一个过程 常用
  • 求过审~~~

    我要过审 纯水
  • 微信小程序openid取不到,总是undefined

    今天在做微信小程序开发的时候 遇到了这样的问题 微信小程序官网的坑是少了data 所以获取不到 是undefined 但我加了data还是undefined 解决方法是 遍历res data这个对象数组 看回送的错误码及错误是什么 我的错误
  • C++成员函数模板特化问题

    C 成员函数模板特化问题 1 类似代码写法 include