问题标签 [template-function]
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++ - 将函数模板特化传递给可变参数模板函数
我将函数模板专业化的地址传递给常规模板函数没有问题:
但是,当我尝试将相同的特化传递给可变参数模板时:
我使用 GCC 得到以下编译器错误(我尝试了 4.6.1 和 4.7.0):
为什么我会收到这些错误?
c++ - 派生类在基类中调用模板函数时的链接问题
我有一个类Base in base.h
,它有一个模板函数
这个模板应该读入int
或double
输入,我有类Derived,它是从类Base派生的
我试图在派生类中调用函数测试,但出现链接器错误。
最后,我意识到如果在base.cpp
,我添加
不会有编译器错误。这个解决方案看起来很尴尬,有没有更好的解决方案?谢谢
c++ - C++:候选模板被忽略:模板参数的显式指定参数无效
我有这个函数头:
这就是我使用它的方式:
这是GetPixel
和PutPixel
:
我得到这个错误:
note: candidate template ignored: invalid explicitly-specified argument for template parameter 'getFunc' [3]
为什么?
c++ - 通用函数中的 operator== 不匹配
我有下面的代码,我正在尝试编写一个通用函数,它需要 2 个迭代器和一个对象,并检查任何出现并返回出现的次数。
在我的简单课下面
下面是通用函数
我的主要:
完全错误
我似乎无法弄清楚我收到了这个错误。
c++ - C ++在函数中转换指针
我目前有这个宏
它导致了一些名称冲突问题,所以我想把它移到一个模板函数中,比如
但是,我怀疑这是不可能的,但想对此进行确认?为了改变r,我必须有一个指向指针的指针?
c++ - 使用模板参数作为模板参数类型
我似乎无法通过以下方式使用多层模板,
所以它可以被称为:
它会导致以下错误消息:too many template-parameter-lists
。
如果我使用template <typename T, T value>
with printValueAsInteger<int, 123>()
,它可以工作,但这需要我明确指定类型。我怎样才能让它printValueAsInteger<123>()
打印出来value as integer is 123
?
编辑:
我会更具体地说明我需要这个。我的目标是将成员函数作为函数指针传递,我想用模板包装它:
然后像这样传递它:
编辑:
呃,我刚刚意识到我可能不应该(也不能)使用运行时定义的变量作为模板参数。我现在正在尝试使用一个用其他模板参数实例化的类来解决它,并创建一个使用该类的模板函数。或类似的东西。不,不起作用。
请注意,我无法更改 callFunction 的签名,因为它是第三方 API 的一部分。
最后!
我将以下内容放在标题中,
这在源文件中:
我可以这样使用它:
它成功调用了派生实例的方法版本。遗憾的是,允许绑定的方法数量是固定的(本例中为三个),但它很容易扩展。
c++ - 为什么使用模板特化?
我想知道为什么模板专业化有意义?
下面的东西不是等价的吗?
模板专业化:
非模板函数而不是特化:
我相信这些是相同的,因为非模板函数将始终是首选。
c++ - 为什么浮点类型对于模板函数来说是无效的模板参数类型?
我在一个网站上看到声明
有效,而以下无效
为什么第一个是模板函数的合法声明,而第二个不是?
c++ - 为什么模板函数不能将指向派生类的指针解析为指向基类的指针
编译器是否无法在编译时获取指向派生类的指针并知道它有一个基类?根据以下测试,它似乎不能。有关问题发生的位置,请参阅我最后的评论。
我怎样才能让它工作?