问题标签 [partial-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.
c++ - 功能模板部分专业化的解决方法?
考虑以下用于积分 pow 的元函数(这只是一个示例):
如何为这样的函数编写停止条件?
c++ - 成员函数的部分特化
可能重复:
部分模板专业化的“不完整类型的无效使用”错误
为什么我可以这样做:
但不是这个:
对于第二种情况,GCC 给出以下错误:
编辑:
在解释为什么不允许第二个示例时,还请考虑使成员函数也成为模板对哪个示例有效和哪个无效没有影响。也就是说,这仍然有效:
但这不会:
所以原因不能是函数模板只能完全特化,因为第三个示例不是完全特化(模板参数U
仍然存在),但它仍然有效。
c++ - 成员模板专业化
如果我们删除注释,代码将无法编译。我知道这一点(我也知道,我们应该有partial specialization
for C<T*>
),但我找不到标准的词,这解释了这种行为。我重读14 par
了几次标准。你能给我一个报价或标准的标准,这解释了这一点吗?
编辑。
如果我们接下来只删除注释,那么 #2 - 代码将无法编译。
c++ - C++ 帮助理解偏特化
我正在阅读一些 chromium 项目源代码,我发现一件事我无法理解,有一个模板采用一个参数和部分专业化,如下所示:
然后我可以像这个例子一样创建对象:
我正在尝试理解这个表达式“ float (int , string) ”,这通常意味着什么?它是某种没有名称的函数签名吗?我完全糊涂了。
有人可以尝试解释它是如何工作的吗?
提前致谢
c++ - 从模板类继承的非模板类的部分特化
示例 1
如果我们有Base
和Derived
类
和一个模板类
我们可以用下面的方式写一个偏特化:
示例 1可以正常工作。(完整代码:http: //ideone.com/4FyrD)
示例 2
如果我只制作Base
一个类模板:
下一个部分专业化不起作用:
示例 2无法编译编译器抛出错误"template parameters not used in partial specialization:"
(完整代码:http: //ideone.com/gZ6J2)
问题
所以问题是。有什么方法可以编写适用于所有派生自BaseTpl
.
专业化工作的类列表:
c++ - c++打破模板专业化歧义
我一直在阅读C++ 模板元编程并做其中包含的练习,但遇到了一个问题。这个小例子可以看出问题的核心:
这无法编译,因为 c 的类型不明确。编译器无法判断它应该实例化哪个特化,但是,我知道在这种情况下,我希望调用第一个特化。到目前为止我提出的解决方案是像这样重写它
这个解决方案的问题是我实际上对每个指针、常量、引用和数组类型都有部分特化,所以我不得不单独将此检查添加到每个特化中。
那么,我的问题是,是否有某种方法可以拥有以前的紧凑型特化并以某种方式对其进行调整,以便编译器实例化特化
如果有歧义,而不是其他任何专业?
对于那些感兴趣的人,我正在研究的问题是第 2 章问题 1。
c++ - 带有模板类的函数模板特化
可能重复:
函数模板的部分特化
我在任何地方都找不到我的问题的解决方案,因为如果我用我想出的关键字进行搜索,我会得到适合不同问题的解决方案。我知道这必须以前问过,只是找不到解决方案。
假设我有一个函数模板:
我可以像这样专门化它,比如说int
:
但是现在的问题是,我希望它也可以与向量一起使用。由于向量类是模板类,因此变得很困难。
像这样专门化功能:
会产生以下错误(MinGW g++):
请注意,函数 print 只是一个示例。
我该如何解决这个问题?
c++ - 链接时未定义对部分专用模板类函数的引用
所以我对函数模板的部分专业化有疑问。我选择此处描述的解决方案:问题
现在我有这个:
但我想要这样的布局:
助手.hpp
vector_helper.cpp
打印文件
主文件
编译如下:
问题是MinGW正在产生链接时错误:未定义的参考helper<vector<...>>::print(vector<...>)
当我添加该行时:
之前int main() {...}
,它编译得很好并且也可以工作。我该如何解决它,因为我想在 g++ 命令链接的文件中添加类专业化。
c++ - 成员函数的部分模板特化:“原型不匹配”
我正在尝试部分专门化非模板类的模板化成员函数:
我收到以下错误:
如何修复编译器错误?
c++ - 部分特化不特化任何模板参数
我有以下代码,我试图在其中创建一个模板化的安全数组迭代器。
但是,当我编译时,我得到-
我不确定这意味着什么。我的猜测是它说我声明了一个 T 但我从不使用它,但这显然不是这种情况。