//main.cpp
template <typename T> class MyTemplate {
public:
T* test() {
return new T(this); //error here.
}
};
template <typename T> class MyTemplate2 : public MyTemplate<T> {
};
class MyClass {
public:
MyClass(MyTemplate2<MyClass>* source) {
}
};
int main() {
MyTemplate2<MyClass>().test();
return 0;
}
main.cpp|4|error: invalid conversion from 'MyTemplate<MyClass>* const' to 'MyTemplate2<MyClass>*'
据我所知,MyTemplate中的“this”属于MyTemplate类型。但我希望它是我的模板2。我可以执行显式强制转换,但这需要向template类传递第二个参数,似乎应该有更好的解决方案。有?