【发布时间】:2021-02-17 13:52:46
【问题描述】:
假设我有一堂课:
template <typename A, typename B, typename C>
class Foo {
};
其中通常A 和B 是同一类型,但我想保留单独定义B 的选项。我想定义一个额外的模板,比如说,
template <typename A, typename C>
class Foo {
};
这只是Foo<A, A, C> 的包装。这是常见的做法吗?如果是这样,最简单的方法是什么?
【问题讨论】:
-
A和C的交换顺序我猜不是一个选项(那将是最简单的) -
@largest_prime_is_463035818 如果这是唯一的方法的话。
-
实际上不确定我对问题的解释是否正确。当您说“...只是 Foo 的包装器”时,您希望
Foo<A,C>是与Foo<A,A,C>相同的类型还是不同的类型? (你对任何一种解释都有答案;) -
@largest_prime_is_463035818 我对 Foo 的类型不是特别感兴趣。我想同样的会更好。
-
如果您提供更多上下文可能会更好?为什么你需要这个表格?你能放弃这个模板参数的顺序吗?您是否在模板函数中使用它(因此可以使用模板参数检测)?
标签: c++ c++11 templates parameters