问题标签 [class-template]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 模板类作为模板参数默认参数
今天我尝试将模板类传递给模板参数。我的模板类std::map
有四个模板参数,但最后两个是默认参数。
我能够获得以下代码进行编译:
不幸的是,我不想一直传递最后两个参数。真的是写的太多了。如何在此处使用一些默认模板参数?
c++ - 正确前向声明完全专业化的模板类
假设我有以下一堆文件:
Generic.h:复杂的模板类
Special.h:定义提到的模板类的完全专用版本,简化了易用性。
Client.h:使用SpecialMap
和定义前向声明的客户端。
Client.cpp:客户端代码可能知道Generic.h
并且Special.h
主.cpp:
GenericMap
表示没有前向声明的模板类。对于某些用户来说,完全专用SpecialMap
的GenericMap
should 版本就足够了,为了方便使用,这里使用了 a typedef
。
现在在Client
内部使用SpecialMap
,但头文件应该只为SpecialMap
.
不幸的是,以下文件将无法编译。不知何故,张贴的前向声明就足够了。什么是正确的?
对于冗长的列表,我很抱歉,但这是我能想到的最小的非工作示例。
c++ - 从函数指针的参数推导 C++ 模板类型
我有一个看起来像这样的模板:
f
在里面使用SomeAction
(其实f
是类成员,不过我觉得没关系)。
问题是:这可以通过从模板参数列表中删除'typename T'并让编译器推断出该类型来改进吗?
谢谢!
c++ - C++ 类模板作为函数返回类型
我正在做一个小项目来了解 C++ 模板是如何工作的。基本上,我有类似的东西:
当我尝试编译我的程序时,我收到一个错误(错误 C2143,在 '<' 之前缺少 ';')。是因为我不能将 MyOperation 作为函数操作()的返回类型吗?
先感谢您。
c++ - 哪些成员继承自模板参数
如果我们有一个类模板
现在,如果我将类的对象声明Field
为
那么哪些成员函数是vector
我的继承形式velocityField
c++ - 模板 T 类数组
我的 C++ 课程中有一个(应该很简单的)作业。
下面是作业: 创建一个包含两个私有数据成员的类模板:T * 数组和 int 大小。该类使用构造函数根据输入的大小分配数组。有成员函数允许用户根据大小填充数组。此外,还有一个成员函数,用于对数组进行排序并显示排序后的元素。使用析构函数删除数组。开发 main() 来创建两个对象来调用成员函数。结果,第一个对象将保存其 double 类型的数组,而另一个将保存其 int 类型的数组。
这是我想出的,但出现了“分配不完整类型'T'”的错误:
不确定我的思维方式是否完全迟钝,或者我是否只是缺少一个小元素。任何帮助都很棒。
感谢@jblixr 和@user3655463 的帮助。在您的提示和帮助下,我想我已经解决了。如果其他人正在为此工作,这是我想出的供参考。
c++ - 为什么这个模板类不能正常工作?
该功能正常工作。我的意思是在“aux = arr1.get(i);”这一行 正在做它的工作,但是当我尝试在 main() 中读取 arr3 的元素时,前两个元素不是 0 和 1。程序显示的是其他大数字,例如 175243462 和 152614213。
c++ - 类模板中的静态成员
发生问题时,我正在编写类模板以实现单例。
虽然在 .h 文件中有一个静态指针,但由于链接器问题(lnk 2001 和 lnk 1120 与 15)而无法编译。
我简化了我的代码以获得更容易理解的问题:
我的班级 SingletonTemplate.h(没有 .cpp 顺便说一句)
我在几篇文章中读到静态变量的进一步声明可以解决这个问题。我在我的函数之外添加了这个(但仍在.h中):
这样做解决了我的问题,但我不知道为什么。所以,如果有人可以向我解释这条线的目的是什么,那就太棒了。
提前致谢