问题标签 [template-specialization]

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.

0 投票
1 回答
4083 浏览

c++ - 未能专门化功能模板

这是家庭作业,虽然它已经用不同的方法提交了。

我从 Visual Studio 2008 得到以下信息

代码如下

函数对象定义为

这里有什么药?

[编辑]对不起,也许我应该明确继承

[/编辑]

[Edit2]
在工具箱的建议(这似乎很合理)之后,我得到了以下错误消息

main.cpp 仍然是相同的,但对函子层次结构和源文件进行了一些细微的修改。前向声明等不起作用,所以我不得不将定义放在单独的文件中。

我真的不明白这一点,我在这里错过了什么?一些转换操作,还是什么?
[/编辑2]

[Edit3]
我希望是最后也是最后的编辑。在调试和重写一些代码之后,我实际上得到了这个工作。这就是我最终的结果,这是我能做的最好的

这似乎有效,无论是在一个单独的项目(今天大部分时间都在搞砸这个)和我几天前提交的实际项目中。
非常感谢您的时间和帮助!
[/编辑3]

0 投票
1 回答
536 浏览

c++ - C 风格字符串的模板特化

我很难为接受常规 c 样式字符串的模板专业化获取正确的语法。例如

然后在呼叫站点

给出错误

我应该如何构建专业化以启用 c 风格的字符串?

更新:修复了模板专业化以具有正确的语法模板 => 模板<>

0 投票
3 回答
7631 浏览

c++ - 引用类型的专用函数模板

为什么此代码的输出:

一般
一般
一般

第三个令人惊讶,因为该功能专门用于int&

编辑:我知道重载可能是一个合适的解决方案。我只是想了解它背后的逻辑。

0 投票
2 回答
254 浏览

c++ - 模板的总类专业化

假设我有一个模板类

但我想完全专业化..对于接受参数的模板?

如何做到这一点?

0 投票
2 回答
2735 浏览

c++ - 模板 ID 不匹配任何模板声明

我遇到了一个令人沮丧的编译器错误,我似乎无法解决。这与模板专业化有关,但我看不出有什么问题......

代码如下:

0 投票
2 回答
144 浏览

c++ - 关于模板专业化

我需要为哈希表提供插入/查找/删除接口。我编写哈希表只是为了提供内部存储桶/条目管理。散列函数应该从外部提供。我现在被困在如何公开接口上,以便哈希表可以处理字节数组以及固定长度的数据类型。问题是对于字节数组,散列函数需要知道数组的长度,而对于其他类型,它可以不需要这些信息。我的问题是我无法实现operator[]字节数组,因为哈希函数需要两个参数。我想好好operator[]珍惜。有没有办法解决这个问题(没有专门针对该专门化T*并抛出编译器错误operator[]。)?

0 投票
3 回答
652 浏览

c++ - 比较:C++ 模板专业化方法

哪个更正确?为什么。

我最近在工作中讨论了如何进行特定的模板专业化。

这边走:

或者这样:

0 投票
6 回答
71224 浏览

c++ - 具有常量值的 C++ 模板特化

在给定模板参数之一的数字常量的情况下,是否有一种直接的方法来定义 C++ 模板类的部分特化?我正在尝试仅为某些类型的模板组合创建特殊的构造函数:

Expected identifier before numeric constant此示例无法编译,在第二个定义中返回错误。

我在这里和其他地方浏览了许多示例,但大多数似乎都围绕着专门使用类型而不是常量。

编辑:

寻找一种方法来编写一个有条件使用的构造函数,功能上是这样的:

0 投票
6 回答
3679 浏览

c++ - 模板通过 const 引用传递

我已经查看了一些类似的问题,但我仍然感到困惑。我试图弄清楚如何在将对象传递给专门的模板函数时显式地(而不是通过编译器优化等)和 C++03 兼容避免复制对象。这是我的测试代码:

(1) 接受 type 的对象C,并进行复制。这是输出:

因此,我尝试专门使用const C&参数 (2) 来避免这种情况,但这根本行不通(显然原因在这个问题中有解释)。

好吧,我可以“通过指针”,但这有点难看。那么是否有一些技巧可以很好地做到这一点?

编辑:哦,可能我不清楚。我已经有一个模板函数

但现在我想专门处理这个函数来接受另一个对象的 const& :

但只有在我将其定义为时才会调用它

基本上我想用这个专业化做的是适应SpecificObject模板界面,比如

EDIT2:好的,我可以强制const C&这样调用专业化:

但是有没有办法让它像这样工作f(c)

EDIT3:如果有人最终会有类似的问题,我终于在另一个问题中找到了这个链接,这很有帮助:http ://www.gotw.ca/publications/mill17.htm

0 投票
4 回答
652 浏览

c++ - 部分特化成员函数实现

我目前正在重构一些代码,明确专门化具有两个模板参数的类模板的成员函数。

现在我添加了更多模板参数,所以类现在看起来像这样:

这两个额外的参数只是将 typedef 添加到我的类中,因此运行时功能并没有真正改变。有什么办法可以保留(现在部分)专门的 bar 实现?我似乎无法弄清楚它的语法,我有一种预感,这可能是不可能的。

编辑:我正在寻找类似的东西:

这似乎没有编译..