有没有办法拥有这样的模板类
template<bool state = true>
class A
{
};
并且有另一个类可以同时接受A<true>
和A<false>
作为参数或字段,而不是模板类本身。像这样:
class B
{
public:
B(A& arg_a)
: a(arg_a)
{}
private:
A& a;
};
int main()
{
A<true> aTrue;
A<false> aFalse;
B bTrue(aTrue);
B bFalse(aFalse);
};
或者这根本不可能,因为具有不同模板参数的同一类的两个对象被编译器视为不同的类型?关于如何设计它的其他建议也将不胜感激。我知道如果我只是将模板参数设为类字段,这种设计是可能的,但我想知道这是否可以使用模板参数来完成。