Prev: LIACC moved to LIAAD
Next: Announce: qtada,gprbuil and xmlada for Debian, Ubuntu and Gentoo Linux
From: Dmitry A. Kazakov on 1 May 2010 02:28 On Sat, 1 May 2010 00:42:53 -0500, Randy Brukardt wrote: > "Dmitry A. Kazakov" <mailbox(a)dmitry-kazakov.de> wrote in message > news:1p28brlj9yc3k$.1nv0ey1aadvoi$.dlg(a)40tude.net... >> On Wed, 28 Apr 2010 16:07:24 -0500, Randy Brukardt wrote: >> >>> As for the initial concern about giving a subtype name, in the case of >>> literals you have to give one somewhere (since a literal can be of many >>> different types, and the results can vary depending on the type used -- >>> not >>> for 'Length, but for 'Last and most other properties). >> >> No problem, Ada supports overloading in the result type. E.g. abs (-1) is >> OK. > > That doesn't help. Consider: > > type My_String is array (Natural range <>) of Character; > > Now, if you wrote: > > "ABC"'First > > The answer depends on whether the type of the prefix is String or My_String, > but the type is Integer'Base in both cases. No amount of overloading will > help. How is that different to: package P is function ABC return String; end P; package Q is type My_String is array (Natural range <>) of Character; function ABC return My_String; end Q; use P,Q; ... ABC'First; -- Ambiguous > The language does not want the compiler to have to list out all of the > possible types for a string literal, figure out the appropriate bounds for > all of them, take all of the ones with the appropriate index type, and then > allow the attribute if the answer is the same. That would be silly, of course. But it is not what I meant. Attribute should be an overloaded operation as any other. If the expression happens to be ambiguous there are language means to specify what it is. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de
First
|
Prev
|
Pages: 1 2 3 4 Prev: LIACC moved to LIAAD Next: Announce: qtada,gprbuil and xmlada for Debian, Ubuntu and Gentoo Linux |