Hi,
Ich habe grade mit den FLAC Patches für ScummVM rumgespielt und bekomme beim Kompilieren ständig eine Fehlermeldung.
Was muß ich verändern, das folgendes Konstrukt kompiliert?
class Foo { public: Foo(); void convertA( int ); void convertB( int ); typedef void (Foo::*fptr)(int); fptr _ptr; };
Foo::Foo() : _ptr( convertA ) {}
Die Fehlermeldung lautet: cppfptr.cpp:12: error: argument of type `void (Foo::)(int)' does not match ` void (Foo::*)(int)'
Ich wünsche Euch noch einen schönen Sonntag Abend, -Gregor
On Sunday 01 February 2004 17:38, Gregor Jasny wrote:
Ich habe grade mit den FLAC Patches für ScummVM rumgespielt und bekomme beim Kompilieren ständig eine Fehlermeldung.
Was muß ich verändern, das folgendes Konstrukt kompiliert?
versuch mal typedef wegzunehmen, das hat dort nix verloren.
Konrad
On Sunday 01 February 2004 17:38, Gregor Jasny wrote:
class Foo { public: Foo(); void convertA( int ); void convertB( int ); typedef void (Foo::*fptr)(int); fptr _ptr; };
Foo::Foo() : _ptr( convertA ) {}
Im Stroustruop habe ich den entscheidenden Hinweis gefunden: Im Unterschied zu C99 muß bei C++ ein & vor den Funktionsnamen gestellt werden. g++ hat mich dann noch auf den fehlenden Scope hingewiesen.
Foo::Foo() : _ptr( &Foo::convertA ) {}
Trotzdem Danke an alle! -Gregor
lug-dd@mailman.schlittermann.de