我有一些代码大量使用模板类。这是可能的,但不希望在这一点上改变现有的代码库。我需要编写一个新的类,这个类将作用于两个模板类(就这个问题而言)是任意的,除了有一个通用模板参数。一个简单的例子:链接的模板模板参数 - 约束内部参数是相同的
template<typename T>
class A {
// Implementation details
};
template<typename T>
class B {
// Implementation details
};
template<typename T, typename X<T>, typename Y<T>> // This syntax is invalid!
class C {
// Implementation details
};
我需要写类C
。示例中显示的语法提示我想要做什么,但不起作用。这里的模板参数X
和Y
必须通过采用相同的模板参数T
“绑在一起”。除此之外,它们可以是任意的。
这意味着什么“喜欢” C<std::string,A<std::string>,B<std::string>>
应该是有效的,但C<std::string,A<std::string>,B<std::map>>
不应该因为A
和B
不具有相同的模板参数。 (“喜欢”的报价再次表示语法仍然是错的上述C
声明)
其他尝试(这也失败了)包括:
template<typename T, template<typename> class X<T>, template<typename> class Y<T>>
template<typename T> template<typename X<T>, typename Y<T>>
是这样的可能吗?如果是这样,语法是什么?
谢谢!
只需使用'模板类X,模板类Y>'然后'X '和'ÿ'无论你在你的'C'需要。 –
Rostislav