Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在C++中,为什么模板函数不能进行部分专门化?

在C++中,为什么模板函数不能进行部分专门化?
EN

Stack Overflow用户
提问于 2016-06-26 20:15:49
回答 1查看 77关注 0票数 0

为什么C++有这样的限制,换句话说,如果模板函数也可以部分专门化,它会导致任何模糊或实现的复杂性吗?

为什么它不能像模板类那样工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-04 17:41:43

我相信这样的想法是可以通过重载函数模板来覆盖大多数情况(这是您无法处理类的事情),而设计人员可能认为剩余的情况不值得在重载解决中带来额外的复杂性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38045851

复制
相关文章
类成员模板函数为什么不能被 virtual 修饰
问题 类成员模板函数为什么不能被 virtual 修饰?比如下面的代码会编译不通过, class Animal{ public: template<typename T> virtual void make_sound(){ //... } }; 回答 模板是编译期生成实例化的,虚函数是运行期才能确定下来的,这就出现矛盾了。
ClearSeve
2022/02/10
1.1K0
c++之模板函数-模板
函数模板的作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。
西西嘛呦
2020/08/26
1.5K0
C++函数模板(模板函数)详解
大家好,又见面了,我是你们的朋友全栈君。 C++函数模板(模板函数)详解 定义 用法: 函数模板的原理 延申用法 2.1为什么需要类模板 2.2单个类模板语法 2.3继承中的类模板语法 案例1: 案例2: 2.4类模板的基础语法 2.5类模板语法知识体系梳理 1.所有的类模板函数写在类的内部 复数类: 2.所有的类模板函数写在类的外部,在一个cpp中 2.5总结 关于类模板的几点说明: 2.6类模板中的static关键字 案例2:以下来自:C++类模板遇上static关键字 2.7类模板在项目开发中的
全栈程序员站长
2022/07/22
1.9K0
C++函数模板(模板函数)详解
C++模板之函数模板
模板和C#的泛型很相似! 如下代码 #include <iostream> #include <string> using namespace std; template<typename T> T maxValue(T value1,T value2) { if(value1>value2) { return value1; } return value2; } int main() { cout<<maxValue(1,3)<<endl;
liulun
2022/05/09
8420
为什么在静态方法中不能使用this
在JVM的运行时数据区中有个虚拟机栈(或Java栈),在它的里面是由栈帧'叠加'而成.栈帧由局部变量表,操作数栈,动态连接,方法返回地址等组成.
书唐瑞
2022/06/02
1.9K0
为什么在静态方法中不能使用this
C++ 函数模板
函数重载功能实现了一个函数名的重复定义,但是即使是这样,在程序中仍然需要分别定义每一个函数,如下连接: http://blog.csdn.net/chaipp0607/article/details/55281496
chaibubble
2022/05/07
2010
c++模板学习07之类模板中成员函数创建时机
普通类中成员函数一开始就创建 类模板中成员函数在调用时才创建 #include<iostream> #include<string> using namespace std; //类模板与函数模板的区别 class person1 { public: void f1() { cout << "f1函数调用" << endl; } }; class person2 { public: void f2() { cout << "f2函数调用" << endl; } }; templat
大忽悠爱学习
2021/03/02
5410
c++模板学习07之类模板中成员函数创建时机
C++ 中为什么需要虚函数
我最近正在学习 C++ 的虚函数,我知道虚函数是用于子类继承的,但虚函数什么时候才需要用它?因为我发现有的教科书上有用 virtual,有的又不用,我有点搞混了。
ClearSeve
2022/02/10
8810
c++ 函数模板
c++ obj文件 obj文件就是目标文件,是源程序经过编译程序编译后生成的 不能直接执行,需要连接程序连接后才能生成可执行文件,这样就能执行 一般由机器代码组成,但也可以是自己定义的一些伪指令代码(需有专门的解释程序对其进行解释执行) 连接程序 把目标代码和它所使用的库文件连接的程序 obj文件与exe文件的区别 编译:当前源代码编译成二进制目标文件(obj文件) 链接(link): 将生成的.obj文件与库文件.lib等文件链接,生成可执行文件(.exe文件) project中每个cpp经编译成为obj
ruochen
2021/05/20
5160
c++ 函数模板
为什么构造函数不能为虚函数
1、从使用角度         虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是要初始化实例,那使用虚函数也没有实际意义呀。所以构造函数没有必要是虚函数。 虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的那个成员函数。而构造函数是在创建对象时自动调用的,不可能通过父类的指针或者引用去调用,因此也就规定构造函数不能是虚函数。 2、从实现上看,vbtl在构造函数调用后才建立,因而构造函数不可能成为虚函数    从实际含义上看,在调用构造函数时还不能确定对象
用户1215536
2018/02/05
2.3K0
C++ 类模板中成员函数和普通函数创建时机
类模板中成员函数和普通函数创建时机是有区别的: 普通类中的成员函数一开始就创建; 类模板中的成员函数在调用时才创建。 #include<iostream> using namespace std; class Demo1{ public: static void show_demo1(){ cout<<"This is Demo1."<<endl; } }; class Demo2{ public: static void show_demo2(){
耕耘实录
2022/05/09
1.2K0
C++函数模板与类模板
那么,如果你想交换两个其他类型的就需要写一个重载函数,这样是非常麻烦的。 这时C++就有了模板。
有礼貌的灰绅士
2023/03/28
8120
C++函数模板与类模板
c++模板篇02函数模板案例----排序函数
函数模板案例----排序函数 任务:用选择排序对不同类型的数组进行排序 #include<iostream> using namespace std; //交换函数 template<class t> void myswap(t& a, t& b) { t temp = a; a = b; b = temp; } //排序函数 template<class T> void test(T &array,int len) { for (int i = 0; i < len; i++) { int
大忽悠爱学习
2021/03/02
4230
nextline函数_在JAVA中Scanner中的next()和nextLine()为什么不能一起使用?
Java 输入一直是一个坑,本来一直用 Scanner,但一直搞不懂换行符啥的,就用 BufferReader ,但前不久大疆笔试需要持续输入,早忘了 Scanner 怎么写,而那个场景用 Scanner 很好实现 ……
全栈程序员站长
2022/09/05
2.7K0
C++ 初识函数模板
如果现在有一个需求,要求编写一个求 2 个数字中最小数字的函数,这 2 个数字可以是 int类型,可以是 float 类型,可以是所有可以进行比较的数据类型……
一枚大果壳
2022/09/16
6200
C++函数内置、函数重载、函数模板
C++提供一种可以提高效率的方法,在编译时将所调用函数的代码直接嵌入到主调函数中,而不是将流程转出去,这种函数称为C++的内置函数。
小林C语言
2020/11/30
7550
C++函数内置、函数重载、函数模板
C++使用函数模板
第一次使用时,新的功能是创建。从功能模板生成的函数的实例称为模板或模板的实例。函数模板的开始是keywordtemplate,表示这是一个模板。
全栈程序员站长
2022/07/06
3990
c++模板学习03之普通函数与模板函数区别
普通函数与函数模板的区别 1.普通函数调用可以发生隐式类型转换 #include<iostream> using namespace std; //1.普通函数调用可以发生隐式类型转换 int add(int a, int b) { return a + b; } int main() { int a = 10; int b = 20; char c = 'a'; //a对应的ascall码为97 //将字符c转化为ascall对应的数值与变量a相加 cout << add(a, c) << e
大忽悠爱学习
2021/03/02
4640
c++模板学习03之普通函数与模板函数区别
C++函数模板详解
经常有碰到函数模块的应用,很多书上也只是略有小讲一下,今天又狂碰到函数模块,无奈特地找来C++编程经典<>翻阅一遍,终于有所全面了解..... C++函数模块基础: 一. 问题: 强类型语言要求我们为
程序员互动联盟
2018/03/16
1K0
c++模板篇01之函数模板
解释: 1.template----声明创建模板 2.typename-------表明其后面的符号是一种数据类型,可以用class代替 3.T----------通用的数据类型,名称可以替换,通常为大写
大忽悠爱学习
2021/03/02
3540

相似问题

为什么函数模板不能部分专门化?

244

为什么不能在c++模板中部分专门化成员函数

21

C++部分模板函数专门化

110

C++模板:模板类中的部分模板函数专门化

30

C++函数模板部分专门化?

62
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文