In our previous episode, Fl?vio Etrusco said: > > That's somewhat what I was thinking. Actually something like > > UnicodeString = object > strict private > FEncoding: Integer; > FBuffer: AnsiString; > function GetCodePointAt(AIndex: SizeInt): Integer; > procedure SetCodePoint(AIndex: SizeInt; p_Value: Integer); > public > property CodePoint[AIndex: SizeInt]: Integer read GetCodePointAt > write SetCodePoint; default; > end; > > I just don't whether something like this is already implemented in the > test branches, at least for -err- testing...
Such ability is not unique for an object. One can also do something like that with a native type. It was discussed and rejected. The trouble is that it is not that easy, consider the first thing a long time pascal user will do is fix his existing code which has many constructs that loop over a string: setlength(s2,s1); for i:=1 to length(s1) do s2[i]:=s1[i]; Now, to return codepoint[i], you need to parse all codepoints before [i]. So instead of O(n) this loop suddenly becomes O(n^2).... _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel