From: Brian Drummond <brian_drummond@btconnect.com>
Subject: Re: Ada Smileys in C++ lib Conversion
Date: Sat, 14 Aug 2010 11:57:07 +0100
Date: 2010-08-14T11:57:07+01:00 [thread overview]
Message-ID: <95tc66hjv3stdk0nhdv9o46e5l2ecdog5j@4ax.com> (raw)
In-Reply-To: b05a83d9-fac1-45cb-91c5-f99516ca27f2@k10g2000yqa.googlegroups.com
On Fri, 13 Aug 2010 18:36:38 -0700 (PDT), Warren <ve3wwg@gmail.com> wrote:
>On Aug 13, 12:53�pm, Anh Vo <anhvofrc...@gmail.com> wrote:
>> On Aug 13, 7:20�am, Warren <ve3...@gmail.com> wrote:
#define MC_CTL_LOCAL_C 0x80 // Local on/off
#define MC_CTL_ALLN_OFF 0x81 // All notes off
>> > it immediately identified the value MC_CTL_LOCAL_C
>> > (and others) as not fitting into the Control_Type's
>> > valid range. In C++ a glaring error had gone
>> > unnoticed:
>> I am smiling, too, since I am not surprised at all.
>Heh heh. This is one of those things that C/C++ cannot
>guard against at all. Unless the value(s) were to exceed
>the underlying type's storage capability, the compiler
>is helpless to identify it. There is simply no concept of
>a "range" of valid values in that language.
>
>About the only thing you could do (in C/C++) is to code
>a macro check on the constants, but I don't think I've
>ever seen it done in practice. Only as a argument value
>assertion check in strategic places.
Heh too.
I thought I was being really really smart years ago in C, when I decided to
convert all those #defines to integer constants...
const int MC_CTL_LOCAL_C = 0x80;
and so on.
Of course I was declaring integer variables, who's storage class happens to be
named "constant".
But it certainly puzzled me to be told that I couldn't use a "const" in a
constant expression!
- Brian
next prev parent reply other threads:[~2010-08-14 10:57 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-13 14:20 Ada Smileys in C++ lib Conversion Warren
2010-08-13 15:06 ` Yannick Duchêne (Hibou57)
2010-08-13 16:53 ` Anh Vo
2010-08-14 1:36 ` Warren
2010-08-14 9:52 ` Georg Bauhaus
2010-08-14 10:57 ` Brian Drummond [this message]
2010-08-14 20:34 ` Maciej Sobczak
2010-08-14 21:01 ` Dmitry A. Kazakov
2010-08-15 1:16 ` Brian Drummond
2010-08-15 10:04 ` Maciej Sobczak
2010-08-16 12:08 ` Brian Drummond
2010-08-16 12:13 ` Georg Bauhaus
2010-08-16 12:30 ` Brian Drummond
2010-08-16 12:39 ` Maciej Sobczak
2010-08-16 21:39 ` Brian Drummond
2010-08-16 22:53 ` Robert A Duff
2010-08-24 10:12 ` David Thompson
2010-08-30 9:51 ` Brian Drummond
2010-08-16 14:54 ` Warren
2010-08-16 20:27 ` Maciej Sobczak
2010-08-17 12:57 ` Warren
2010-08-17 13:37 ` Maciej Sobczak
2010-08-17 15:07 ` Georg Bauhaus
2010-08-18 17:31 ` Warren
2010-08-24 10:12 ` David Thompson
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox