Curiously Recurring Templates?
我有一个问题,奇怪的重复模板可以很好地帮助,但我甚至不能通过一个简单的测试。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | template<typename T, int _size, typename OutterT> class Foo { }; template<typename T> class Bar : public Foo<T, 2, Bar> {}; //typedef Bar<float> Vec2f; int main() { return 0; } |
这会导致错误
1 2 | foo.cpp:7: error: type/value mismatch at argument 3 in template parameter list for ‘template<class T, int _size, class OuterT> class Foo’ foo.cpp:7: error: expected a type, got ‘Bar’ |
我错过了什么。
用G++4.2.1编译
1 2 3 4 5 6 7 8 9 10 | template<typename T, int _size, typename OutterT> class Foo { }; template<typename T> class Bar : public Foo<T, 2, Bar<T> > {}; // ^^^ Bar<float> x; |
由于