问题标签 [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 投票
4 回答
25908 浏览

c++ - 基于继承类的模板特化

我想把这个专门化,不改变主线。是否可以根据其基类专门化某些东西?但愿如此。

-编辑-

我将有几个继承自 SomeTag 的类。我不想为他们每个人写相同的专业。

0 投票
3 回答
1826 浏览

c++ - 如何获得专门的模板来使用成员函数的非专门版本?

考虑以下代码:

编译此代码会产生以下错误:

1>main.obj:错误 LNK2019:引用了未解析的外部符号“public:struct vec<3> __thiscall vec<3>::normalize(void)”(?normalize@?$vec@$02@@QAE?AU1@XZ)在函数 _main

0 投票
4 回答
4151 浏览

c++ - 部分类模板专业化是这个设计问题的答案吗?

假设您有一个班级,其工作是连接到远程服务器。我想抽象这个类来提供两个版本,一个通过UDP连接,另一个通过TCP连接。我想构建尽可能精简的运行时代码,而不是使用多态性,我正在考虑模板。这是我的设想,但我不确定这是最好的方法:

所以最终的好处是 T 的通用性仍然可用,但是设置 UDP 或 TCP 连接所需的非常不同的代码已经被专门化了。我想你可以把它放在一个类中,或者提供另一个类,它遵循一些纯虚拟接口来设置网络连接,比如 IConnectionManager。

但这确实留下了泛型 T 的代码现在必须在两个专用版本中编写和维护的问题,它们最终是相同的。如何最好地解决这个问题?我有一种感觉,我对这一切都错了。

0 投票
2 回答
280 浏览

c++ - 哪个编译器对于以下重载/专业化行为是正确的?

考虑以下代码:

预期的输出是多少?“T”还是整数?

一个编译器(来自 Apple Xcode 3.1.2 的 gcc 4.0.1)输出“int”,另外两个编译器(gcc 4.1.2 和 4.1.3)输出“T”。

如果我在 foo(T *, int) 版本之前移动 foo(int *, int) 声明/定义,则所有输出“int”。在这种情况下,重载/专业化的顺序是否由当前标准定义?

0 投票
1 回答
201 浏览

c++ - 是否可以检测指向成员函数的指针?

我想要一个指向成员函数的情况下的专门模板。有没有办法检测到这一点?现在我声明 struct isPtrToMemberFunc,然后为每个类(现在只有 1 个)添加一个额外的模板(类 TType=void)并专门化额外的模板以查看其 isPtrToMemberFunc。有没有办法自动检测到这个?如果不是,我目前的方法是最好的解决方案吗?

0 投票
4 回答
3846 浏览

c++ - 继承与专业化

考虑以下两种使用场景(如您所见,即最终用户只会对使用Vector2_tand感兴趣Vector3_t):

[1]继承:

[2]专业:

我无法决定哪个是更好的解决方案。继承的明显优势是派生类中的代码重用;一个可能的缺点是性能(更大的尺寸,用户可能通过价值等)。专业化似乎可以避免这一切,但代价是我不得不多次重复自己。

我错过了哪些其他优点/缺点,在您看来,我应该走哪条路?

0 投票
1 回答
2119 浏览

c++ - 模板类中函数的模板特化

我有一个模板类,里面有一个模板函数(不同的模板参数),我在让编译器调用正确的函数时遇到问题。

例子:

因此,如果 Parm3 的类型是“无效”,我希望调用第二个 Call。否则第一个。VS 它工作正常,但 GCC 到处都是。它总是调用第一个。现在这是在非专业类中专攻的问题,还是与我专攻“无效”这一事实有关

任何帮助都会很棒。谢谢。

0 投票
3 回答
6324 浏览

c++ - 使功能模板专业化虚拟合法吗?

在 C++ 中,函数模板特化应该与普通函数完全一样。这是否意味着我可以制作一个虚拟的?

例如:

Visual Studio 2005给我以下错误:

致命错误 C1001:编译器发生内部错误。

0 投票
2 回答
747 浏览

delphi - 泛型类型的大小

有什么方法可以确定类似的大小(以字节为单位)

我可以写类似的东西吗

或者也许在专业化的帮助下?

谢谢!

0 投票
3 回答
1252 浏览

c++ - 成员模板专业化及其范围

在我看来,C++ 不允许在命名空间和全局范围以外的任何范围内进行成员模板特化(MS VSC++ 错误 C3412)。但对我来说,在派生类中专门化基类的主要成员模板是有意义的,因为这是派生类所做的——专门化基类中的东西。例如,考虑以下示例:

我的问题是为什么不允许?