Zitat von
Alter Mann:
Mach die Hilfe auf und suche nach E2506.
hast du das auch mal gemacht?
Zitat von
OH:
E2506: Explizite Spezialisierung ist nicht eindeutig: Template-Arg. müssen angegeben werden
Der folgende Programmcode erfordert explizite Template-Argumente:
Delphi-Quellcode:
template<class T> void foo(T);
template<class T> void foo(T *);
template<> void foo(int *); // Fehler, es muss 'foo<int>' oder 'foo<int *>' heißen
Also das klingt mehr nach einem Problem in der Definition des Generics
Ich hab aber Problemchem in der Implementierung
und diese treten auch noch nur sporatisch auf.
[add]
Also das ist aktuell mein kleines Testprogramm und die aktuelle Version liegt im Anhang.
Leider meckert der Compiler an unterschiedlichen Stellen und wenn man gleich nochmal compilert, wird oftmals plötzlich wo anders gemeckert.
Ansonsten wäre es eigentlich eine recht schicke Sache (wenn es denn vollständig liefe)
Delphi-Quellcode:
Program Project1; SysUtils, AssocArray;
Type TTestRec = Record
A: String;
X, Y, Z: Integer;
End;
TStringAssocArray = TAssocArray<String>;
TIntegerAssocArray = TAssocArray<Integer>;
TTestAssocArray = TAssocArray<TTestRec>;
Var A: TStringAssocArray;
B: TTestAssocArray;
T: TTestRec;
Begin
A['123'] := 'abc';
A['456'] := 'def';
A['alfred'] := 'xyz';
If A[1] = A['456'] Then Beep;
// A.SetLength(3);
//
// A.Length = 3
// A.Name[1] = '123'
// A.Value[1] = A[1] = 'abc'
// A.Value['456'] = A['456'] = 'abc'
// A.Index['456'] = 1
//
// A.Add('ghi', 'Name');
// A.Add('ghi');
// A.Insert('ghi', 3, 'Name');
// A.Insert('ghi', 3);
// A.Move(3, 2);
// A.Delete(3);
// A.Delete('alfred');
B['test'] = T;
If B[0] = T Then Beep;
End.
[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]