From: "Luke Guest" <lguest@bubball.com>
Subject: Re: Overloading procedures with Float and Long_Float types
Date: Mon, 8 Mar 2004 15:18:15 -0000
Date: 2004-03-08T15:18:15+00:00 [thread overview]
Message-ID: <404c8f63.0@entanet> (raw)
In-Reply-To: f20p4057h0ui8pj2bmja5ualk3c0j9v9sa@4ax.com
> GLfloat (1.0) or better GLfloat'(1.0) is exactly that hint. It tells
> that the numeric literal 1.0 has to be converted to (the first case),
> or expected to be of (the second case) the designated type. How could
> it be otherwise? Carefully observe that the type of 1.0 is neither
> Float nor Long_Float. It is Universal_Real. (see ARM 2.4)
Fair enough.
> >Basically, it just seems to be wasting a good opportunity for overloading
> >here.
>
> Surely not.
>
> Generally, oveloading is not a very brilliant idea in the case like
> yours. Overloading is a way to make different things look similar.
> (polymorphic as it called in OO) And what is a difference between
> Float and Long_Float? The length of mantissa? This is a pure
> implementation detal, which has to be hidden. IMO the actual problem
> here is bad design. If you are witting an OpenGL application you have
> to choose which precision is suitable for this concrete application.
> If you are designing bindings to OpenGL, then it is better to place
> float and double things in two different [paths of] packages. And
> finally, calling subroutines with "magic" numeric literals is the most
> obscure way of programming.
Hmmm, this will also mean, that glVertex[234][is] wil cause problems here
(integer vertices). I also don't think it makes sense design wise to move
them into separate packages for int, short, float, double, as some apps
would like to mix them.
Maybe a good compromise here would be to either:
1) Not use overloading, and postfix the procedure call with the type, a la
OpenGL [FD], or
2) Move into separate packages and overload on number of parameters, a la
OpenGL [234].
Thanks,
Luke.
next prev parent reply other threads:[~2004-03-08 15:18 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-08 0:17 Overloading procedures with Float and Long_Float types Luke A. Guest
2004-03-08 3:49 ` James Rogers
2004-03-08 8:16 ` Luke A. Guest
2004-03-08 8:20 ` Preben Randhol
2004-03-08 9:06 ` Luke A. Guest
2004-03-08 10:10 ` Dmitry A. Kazakov
2004-03-08 14:05 ` Luke Guest
2004-03-08 14:07 ` Preben Randhol
2004-03-08 15:10 ` Luke Guest
2004-03-08 16:20 ` Preben Randhol
2004-03-08 16:28 ` Luke Guest
2004-03-08 17:58 ` Preben Randhol
2004-03-09 8:55 ` Dmitry A. Kazakov
2004-03-08 16:50 ` Hyman Rosen
2004-03-08 16:55 ` Luke Guest
2004-03-08 17:32 ` Hyman Rosen
2004-03-08 14:37 ` Dmitry A. Kazakov
2004-03-08 15:18 ` Luke Guest [this message]
2004-03-08 19:52 ` Gautier Write-only
2004-03-08 20:34 ` Luke A. Guest
2004-03-09 8:40 ` Dmitry A. Kazakov
2004-03-08 12:46 ` David C. Hoos
2004-03-08 14:03 ` Luke Guest
2004-03-08 14:54 ` Georg Bauhaus
2004-03-08 15:19 ` Luke Guest
2004-03-08 16:04 ` David C. Hoos
2004-03-08 16:17 ` Luke Guest
2004-03-09 9:24 ` Dmitry A. Kazakov
2004-03-08 19:58 ` Gautier Write-only
[not found] ` <1faf01c40527$0a364a10$b101a8c0@sy.com>
2004-03-08 16:21 ` Preben Randhol
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox