【发布时间】:2010-01-13 20:11:57
【问题描述】:
我试图解决一个问题,但找到了不同的解决方案。 但是出于好奇想知道以下是否可能:
template< class > struct S;
template< > struct S< Foo > : struct< Foo > {};
我希望能够从专用结构继承非专用结构。上面的示例不起作用,因为继承的结构是专用结构,导致无限递归。
一种可能的解决方案是添加第二个模板参数,比如 bool special ,这样默认值为 false,而专用模板的参数为 true。但是,由于实例化需要指定额外的参数,这让事情变得有点混乱。
还有其他方法可以实现上述吗?
最初的问题是实现矩阵矩阵,其中矩阵本身可能有额外的运算符,这取决于组成矩阵是否具有这些运算符。我希望这是有道理的。同时,不同的专用矩阵需要属于相同的基类,同时保持相同的名称,尽管模板参数不同。我认为可能有一种方法可以使用 enable_if 和 type traits
【问题讨论】:
-
第一个反问是你想用这个解决什么样的问题?
标签: c++ inheritance templates