E2370 Einfacher Typenname erwartet (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Compiler-Fehler und -Warnungen (C++) - Index

Um die Zusammenarbeit zwischen Delphi und C++ sicherzustellen, gibt es Einschränkungen zu den Typennamen in den Parameterlisten der Typen published closure. Die Parametertypen müssen einfache Typennamen mit optionalem Modifikator const sein und in Zeiger- oder Referenzschreibweise formuliert werden.

Wenn Sie einen closure-Typ definieren, müssen die Argumente, die an diesen Typ übergeben werden, vom Typ simple sein. Templates werden beispielsweise nicht unterstützt. Um eine Referenz auf ein Objekt vom Typ template an closure zu übergeben, müssen Sie eine typedef-Deklaration vornehmen, die zu den simple-Typennamen zählt.

Ein Beispiel:



 struct __declspec(delphiclass) foo
 {
      typedef void __fastcall (__closure *foo1)(SomeTemplateType<int> *);
      typedef SomeTemplateType<int> SimpleTypeName;
      typedef void __fastcall (__closure *foo2)(SimpleTypeName *);
 published:
      __property foo1 prop1;  // Fehler
      __property foo2 prop2;  // OK
 };