类中的多个泛型类型

时间:2015-09-12 12:48:57

标签: c++

我有这些结构

a,aa

我想创建一个具有相同代码的类,并根据类的声明使用b,bb结构或radioGroup.check(R.id.radio1)结构,我不想模板中的每个函数class分开,我希望类在构造函数被调用之前或在构造函数中知道哪些结构集,如何做到这一点?感谢。

2 个答案:

答案 0 :(得分:4)

我不确定我是否完全明白这个问题,但你是否正在寻找这样的事情?

#include <type_traits>

template <bool UseA>
class Test {
private:
 typename std::conditional<UseA, a, b>::type i;
 typename std::conditional<UseA, aa, bb>::type c;
};

Test<true> test_using_a;
Test<false> test_using_b;

答案 1 :(得分:0)

有两个不同类型成员的一般解决方案当然是:

template<class X, class Y>
class Test {
private:
   X i;
   Y c;
};

然后,您可以实例化所需的任何组合,例如Test<a,aa>Test<b,bb>,甚至可以对Test<b,aa>发疯。