问题标签 [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++ - 基于继承类的模板特化
我想把这个专门化,不改变主线。是否可以根据其基类专门化某些东西?但愿如此。
-编辑-
我将有几个继承自 SomeTag 的类。我不想为他们每个人写相同的专业。
c++ - 如何获得专门的模板来使用成员函数的非专门版本?
考虑以下代码:
编译此代码会产生以下错误:
1>main.obj:错误 LNK2019:引用了未解析的外部符号“public:struct vec<3> __thiscall vec<3>::normalize(void)”(?normalize@?$vec@$02@@QAE?AU1@XZ)在函数 _main
c++ - 部分类模板专业化是这个设计问题的答案吗?
假设您有一个班级,其工作是连接到远程服务器。我想抽象这个类来提供两个版本,一个通过UDP连接,另一个通过TCP连接。我想构建尽可能精简的运行时代码,而不是使用多态性,我正在考虑模板。这是我的设想,但我不确定这是最好的方法:
所以最终的好处是 T 的通用性仍然可用,但是设置 UDP 或 TCP 连接所需的非常不同的代码已经被专门化了。我想你可以把它放在一个类中,或者提供另一个类,它遵循一些纯虚拟接口来设置网络连接,比如 IConnectionManager。
但这确实留下了泛型 T 的代码现在必须在两个专用版本中编写和维护的问题,它们最终是相同的。如何最好地解决这个问题?我有一种感觉,我对这一切都错了。
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”。在这种情况下,重载/专业化的顺序是否由当前标准定义?
c++ - 是否可以检测指向成员函数的指针?
我想要一个指向成员函数的情况下的专门模板。有没有办法检测到这一点?现在我声明 struct isPtrToMemberFunc,然后为每个类(现在只有 1 个)添加一个额外的模板(类 TType=void)并专门化额外的模板以查看其 isPtrToMemberFunc。有没有办法自动检测到这个?如果不是,我目前的方法是最好的解决方案吗?
c++ - 继承与专业化
考虑以下两种使用场景(如您所见,即最终用户只会对使用Vector2_t
and感兴趣Vector3_t
):
[1]继承:
[2]专业:
我无法决定哪个是更好的解决方案。继承的明显优势是派生类中的代码重用;一个可能的缺点是性能(更大的尺寸,用户可能通过价值等)。专业化似乎可以避免这一切,但代价是我不得不多次重复自己。
我错过了哪些其他优点/缺点,在您看来,我应该走哪条路?
c++ - 模板类中函数的模板特化
我有一个模板类,里面有一个模板函数(不同的模板参数),我在让编译器调用正确的函数时遇到问题。
例子:
因此,如果 Parm3 的类型是“无效”,我希望调用第二个 Call。否则第一个。VS 它工作正常,但 GCC 到处都是。它总是调用第一个。现在这是在非专业类中专攻的问题,还是与我专攻“无效”这一事实有关
任何帮助都会很棒。谢谢。
delphi - 泛型类型的大小
有什么方法可以确定类似的大小(以字节为单位)
我可以写类似的东西吗
或者也许在专业化的帮助下?
谢谢!
c++ - 成员模板专业化及其范围
在我看来,C++ 不允许在命名空间和全局范围以外的任何范围内进行成员模板特化(MS VSC++ 错误 C3412)。但对我来说,在派生类中专门化基类的主要成员模板是有意义的,因为这是派生类所做的——专门化基类中的东西。例如,考虑以下示例:
我的问题是为什么不允许?