9得票5回答
继承与特化

考虑以下两种使用场景(与您看到的完全相同,即最终用户只对使用Vector2_t和Vector3_t感兴趣): [1]继承: template<typename T, size_t N> struct VectorBase { }; template<typename T...

9得票4回答
部分类模板特化是解决这个设计问题的答案吗?

假设你有一个类,它的工作是连接到远程服务器。我想抽象出这个类,提供两个版本,一个通过UDP连接,另一个通过TCP连接。我希望构建尽可能简洁的运行时代码,而不使用多态性,考虑使用模板。以下是我的设想,但我不确定这是否是最好的方法: class udp {}; class tcp {}; te...

9得票2回答
G++是否会为未使用的模板特化生成代码?

在我正在处理的项目中,有一些序列化代码,其中有一个类型的大小取决于编译器。为了解决这个问题,我决定使用模板特化,并且效果很好。所有东西都在编译时解决。代码看起来像这样(不是真实代码,只是一个例子): template <int size> void special_functio...

9得票1回答
当模板参数值相等时,模板特化

我有一个形式为的函数 template<int a, int b> void f(); 当a == b时,我希望进行特定的专业化。伪代码大致如下: template<int a> void f<a, a>(){ //something} templ...

9得票1回答
模板特化

我有以下一组模板: //1 template< typename T > void funcT( T arg ) { std::cout<<"1: template< typename T > void funcT( T arg )"; ...

9得票1回答
继承特化类的模板参数推导

考虑 这段 代码: #include <type_traits> template < typename > struct BB { }; template < > struct BB<float> : BB<int&...

8得票1回答
如何在保持高级函数多态性的同时,为了性能而专门化低级函数?

我从我的生产项目中提取了以下最简示例。我的机器学习项目由线性代数库、深度学习库和应用程序组成。 线性代数库包含一个基于可存储向量的矩阵模块: module Matrix where import Data.Vector.Storable hiding (sum) data Matrix...

8得票3回答
双模板方法的部分特化失败

这里有一个名为List的模板类。 template <typename Point> class List { public: template <const unsigned short N> void load ...

8得票3回答
模板歧义的怪异现象

我有下面的代码(抱歉代码比较长,但我无法再缩小了) template <bool B> struct enable_if_c { typedef void type; }; template <> struct enable_if_c<false&...

8得票1回答
类表继承 vs. 非规范化设计

我正在尝试建模一个专业化/泛化的设计,倾向于使用类表继承(参见这个答案)。 然而,我的同事担心维护和性能问题,因为将有许多(50+)重叠的同一张表的专业化。他的建议是创建一个具有以下列的表: 指向通用表的引用 指向维护专业化类型的表的引用 指向维护属性值的表的引用 这样,所有属性都在...