【发布时间】:2015-04-16 10:01:29
【问题描述】:
我有一个类,我希望模板参数 B 具有默认类型。问题是默认类型是一个复杂的表达式,还取决于 A 的类型。
下面的代码说明了这种情况但显然不能编译,因为模板表达式内部不知道defaultB类型。
template<class A, class B = defaultB>
class Foo{
typedef A::Bar Bar;
typedef Bar::Ex defaultB;
};
有人知道如何正确解决这个问题吗?
【问题讨论】:
-
不是更简单吗->
template <class A, class B = A::Bar::Ex>? -
@myaut 谢谢!那么上面的例子就是一个极端简化的情况,问题是 A::Bar::Ex 实际上是一个非常复杂的表达式。