Re: [IDEA+RFC] Possible solution for min()/max() war

From: Brad Chapman (kakadu_croc@yahoo.com)
Date: Tue Aug 28 2001 - 15:42:07 EST


Mr. Schwab,

--- Andreas Schwab <schwab@suse.de> wrote:
> Brad Chapman <kakadu_croc@yahoo.com> writes:
>
> |> Everyone,
> |>
> |> From reading this thread, I believe I have come up with several reasons,
> |> IMHO, why the old min()/max() macros were not usable:
> |>
> |> - They did not take into account non-typesafe comparisons
> |> - They were too generic
> |> - Some versions, IIRC, relied on typeof()
> |> - They did not take into account signed/unsigned conversions
> |>
> |> I have also discovered one problem with the new three-arg min()/max()
> |> macro: it forces both arguments to be the same, thus preventing signed/unsigned
> |> comparisons.
>
> There is no such thing as signed/unsigned comparision in C. Any
> comparison is either signed or unsigned, depending on whether the common
> type of arguments after applying the usual arithmetic conversions is
> signed or unsigned.

        Then why, IIRC, are the kernel hackers so upset about how the three-arg
macros _prevent_ signed/unsigned comparisons? Apparently the ability to compare
signed/unsigned variables must have _some_ significance....
        
>
> |> Thus, I have a humble idea: add another type argument!
>
> This does not bye you anything because the there can only be one common
> type anyway.

        IDGT. What if you don't want a common type? What if you explicitly
_want_ to cast signed "up" to unsigned or unsigned "down" to signed?

>
> Andreas.

Brad

>
> --
> Andreas Schwab "And now for something
> SuSE Labs completely different."
> Andreas.Schwab@suse.de
> SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
> Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5

=====
Brad Chapman

Permanent e-mail: kakadu_croc@yahoo.com
Current e-mail: kakadu@adelphia.net
Alternate e-mail: kakadu@netscape.net

__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Aug 31 2001 - 21:00:31 EST