wywolanie metody szablonowej w funckcji szablonowej
Ostatnio zmodyfikowano 2013-08-18 22:11
b00rt00s Temat założony przez niniejszego użytkownika |
wywolanie metody szablonowej w funckcji szablonowej » 2013-08-18 21:47:51 Mam taki prosty program, w którym definiuję funkcję szablonową i chcę w niej wykorzystać metodę szablonową klasy. Dostaje jednak błąd podczas kompilacji. Poniżej w funkcji main sprawdzam, że wywołanie tej metody szablonowej jest poprawne. #include <QSharedPointer>
template < typename T, typename U > inline QSharedPointer < T > my_cast_function( const QSharedPointer < U >& ptr ) { return ptr.staticCast < T >(); }
class A { }; class B : public A { };
int main() { QSharedPointer < A > a_ptr( new B() ); QSharedPointer < B > b_ptr = a_ptr.staticCast < B >(); } Oto komunikat kompilatora: In function 'QSharedPointer<T> my_cast_function(const QSharedPointer<T>&)': error: expected primary-expression before '>' token return ptr.staticCast<T>(); ^ error: expected primary-expression before ')' token return ptr.staticCast<T>(); ^ Z czego wynika błąd podczas kompilacji? |
|
Elaine |
» 2013-08-18 22:11:03 Problem analogiczny do brakującego typename , trzeba wprost powiedzieć, czym jest staticCast.
return ptr.template staticCast < T >();
|
|
« 1 » |