AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Generics nicht in SubRecords verfügbar.

Ein Thema von himitsu · begonnen am 12. Sep 2010 · letzter Beitrag vom 14. Sep 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#1

AW: Generics nicht in SubRecords verfügbar.

  Alt 13. Sep 2010, 02:53
Ein bissl Individualität kann nie schaden.


Ich versteh die Genericks "manchmal" nicht.

Jetzt sind och noch generische Konstruktoren verboten.
Zitat:
[DCC Fehler] RegEx.pas(654): E2528 Typparameter sind bei dieser Methode nicht erlaubt
Was für einen Sch*** haben die da eigentlich zusammengebastelt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#2

AW: Generics nicht in SubRecords verfügbar.

  Alt 13. Sep 2010, 15:28
@USchuster:
Nee, ich glaub ich nehm doch eine externe Variante.

Nachdem ich jetzt die Unit umgebaut und wieder kompilierbar hatte, da kam dieses raus:
[DCC Fataler Fehler] RegEx.pas(4250): F2084 Interner Fehler: URW1111 Allerdings meldete sich der Compiler hier erst nach dem End. und ich brauchte eine Weile um es auf diese Zeilen zurückzuführen.


nun sieht es also so aus
Delphi-Quellcode:
TReplacerData<Str> = Array[-1..1024] of Record
  Pos, Len: Integer;
  S: Str;
End;
TReplacer<Str> = Record
Private
  _Data: TReplacerData<Str>;
  _Count: Integer;
  _S: ^Str;
Public
  Procedure Initialize(Var S: Str);
  Procedure Repleace(Pos, Len: Integer; Const S: Str; Var DoOffset: Integer);
  Function Finalize: Integer{Offset};
End;
TReplacer = TReplacer<String>;
TReplacerCP = TReplacer<CPString>;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Generics nicht in SubRecords verfügbar.

  Alt 13. Sep 2010, 18:50
Pointer auf generische Typparameter gehen nicht, warum erklärt Barry Kelly hier (erster Kommentar)

P.S.: Nen Tip: Vergiss Delphi 2010 für solche abenteuerlichen Generic Versuche, das bringt nur Ärger (ich spreche aus Erfahrung)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#4

AW: Generics nicht in SubRecords verfügbar.

  Alt 13. Sep 2010, 19:09
In D2010 soll sich doch einiges gebessert haben?
In D2009 hatte ich noch mehr Probleme und XE hab ich immernoch nicht getestet.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Generics nicht in SubRecords verfügbar.

  Alt 13. Sep 2010, 19:25
In Delphi 2010 waren Generics ansatzweise benutzbar. Trotzdem bin ich bei meiner Implementierung von generischen Events und einem Nachbau von Linq-to-SQL alle Nase lang auf lustige Internal Errors des Compileres gestoßen. Die schlimmsten Kandidaten, die ich aufgrund dieser Fehler irgendwann auf Eis gelegt habe sind zumindest ohne Probleme in XE kompilierbar. *auf Holz klopf*
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Generics nicht in SubRecords verfügbar.

  Alt 13. Sep 2010, 19:29
http://tech.turbu-rpg.com/187/a-plea...with-delphi-xe
Markus Kinzler
  Mit Zitat antworten Zitat
USchuster

Registriert seit: 12. Sep 2010
Ort: L.E.
120 Beiträge
 
Delphi XE3 Professional
 
#7

AW: Generics nicht in SubRecords verfügbar.

  Alt 13. Sep 2010, 19:35
@himitsu:
Der Compiler unterstützt parametrisierte Methoden, aber keine parametrisierte Konstruktoren oder Destruktoren. C# erlaubt das im übrigen auch nicht und damit ist das mit S-Wort etwas unpassend.

Generics werden pro Unit instanziert wo diese verwendet werden und der Code ist dann praktisch nach dem Ende der eigentlichen Unit. Daher ist es bei internen Generics Compilerfehlern nicht verwunderlich das diese auch mal eine Zeile nach dem Unitende gemeldet werden. Den Fehler kann ich nachvollziehen. Leider habe ich den Fehler gestern nicht bekommen, da ich im Projektquelltext getestet habe und der URW Fehler nur auftritt wenn sich die Rekorddefinition in einer Unit befindet. Bei internen Compilerfehlern bleibt i.d.R. nicht anderes übrig als den Code abzuändern.

Wer legt nun die QC Einträge dazu an?

@Stevie:
Es handelt sich um einen Pointer für einen Typparameter und der aufgetretene URW Fehler hat damit gar nichts zu tun.

Geändert von USchuster (13. Sep 2010 um 19:37 Uhr) Grund: Typo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#8

AW: Generics nicht in SubRecords verfügbar.

  Alt 13. Sep 2010, 19:52
Ich hab schon ein paar QTs, aber seitens Emba noch nie was gehört und in XE wurde es wohl auch nicht behoben, da diese QTs noch offen sind.
Irgendwie verliert man da die Lust.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

AW: Generics nicht in SubRecords verfügbar.

  Alt 13. Sep 2010, 21:05
@Stevie:
Es handelt sich um einen Pointer für einen Typparameter und der aufgetretene URW Fehler hat damit gar nichts zu tun.
Hab ich auch nicht behauptet.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
USchuster

Registriert seit: 12. Sep 2010
Ort: L.E.
120 Beiträge
 
Delphi XE3 Professional
 
#10

AW: Generics nicht in SubRecords verfügbar.

  Alt 13. Sep 2010, 23:32
@himitsu:
Ich habe die Probleme eingetragen. Rein interessehalber - was sind Deine Top 3 QC Einträge?

Report No: 88028 Status: Reported
E2003 Undeclared identifier: 'T' with type parameter in anonymous record within generic type
http://qc.embarcadero.com/wc/qcmain.aspx?d=88028

Report No: 88029 Status: Reported
E2528 needs to be documented
http://qc.embarcadero.com/wc/qcmain.aspx?d=88029

Report No: 88031 Status: Reported
F2084 Internal Error: URW1136 with nested array of record type with type parameter
http://qc.embarcadero.com/wc/qcmain.aspx?d=88031
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz