我有一个类模板,它在其中定义了一个类型:
#include <boost/array.hpp>
template <typename T, int N>
class MyFunct {
public:
typedef boost::array<T,N> FArray;
MyFunct();
};
现在我有另一个类模板。这个类的特殊之处在于它应该只适用于在它们内部定义了一个名为FArray
. 请不要问为什么,这是有原因的。
template <typename F>
class MyClass {
public:
MyClass() {
F::FArray a = F::FArray();
}
};
我用这个:
int main(int argc, char** argv) {
MyClass< MyFunct<double,10> > m;
}
当我遇到这种情况时,编译器会生气地告诉我double
没有被调用的成员FArray
。发生了什么?