RAD Studio 10 clang: Fehler bei class template mit __property mit Funktion als read-Eigenschaft
-
Hallo,
ich habe hier folgenden Code:
#pragma hdrstop #pragma argsused template<typename T> struct TestClass { __property double Value = { read=get_value }; double get_value() const { return 4.5; } }; int main(int argc, char* argv[]) { TestClass<int> tc; return 0; }
wird mit dieser Fehlermeldung quittiert:
bcc32c schrieb:
[CLANG Fehler] main.cpp(7): kein passender Funktionsaufruf für 'get_value'
main.cpp(17): in Instantiierung der Template-Klasse 'TestClass<int>' hier angefordertDieser Fehler tritt in der Form nur auf, wenn es sich um ein Klassentemplate handelt, bei normalen Klassen gibt´s keine Probleme:
#pragma hdrstop #pragma argsused struct TestClass { __property double Value = { read=get_value }; double get_value() const { return 4.5; } }; int main(int argc, char* argv[]) { TestClass tc; return 0; }
läuft durch. Der Fehler verschwindet, wenn ich die Funktions vor das __property verschiebe, aber ich möchte nicht alle privaten/protected Funktionen vor den public Properties stehen haben. Gibt´s da nen Trick oder ist das einfach verbuggt?
-
Ja, könnte ein Compilerfehler sein.
Probiere mal__property double Value = { read=this->get_value };
oder aber nur die Deklaration vorher:
struct TestClass { private: double get_value() const; public: __property double Value = { read=get_value }; private: // ... }