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