From: Hyman Rosen <hyrosen@mail.com>
Subject: Re: Why use C++?
Date: Fri, 12 Aug 2011 09:15:22 -0400
Date: 2011-08-12T09:15:22-04:00 [thread overview]
Message-ID: <4e45276d$0$13269$a8266bb1@newsreader.readnews.com> (raw)
In-Reply-To: <4e44e50a$0$7619$9b4e6d93@newsspool1.arcor-online.net>
On 8/12/2011 4:32 AM, Georg Bauhaus wrote:
> #define RGB_LIMIT 3
>
> typedef unsigned char Intensity;
> enum RGB {Red, Green, Blue};
> typedef Intensity Pixel[RGB_LIMIT];
I might do this instead as
typedef unsigned char Intensity;
enum RGB_Index { Red, Green, Blue, N_RGB_Index };
typedef Intensity Pixel[N_RGB_Index];
which avoids the need for a macro and ties the number of
intensities in the array directly to its enumerated index.
> switch (1) { case 0: break; case CHAR_BIT == 8: break; }
Oh, that's cute! It's going right into my bag of tricks :-)
You don't need the breaks, though:
switch (1) { case 0: case CHAR_BIT == 8: ; }
And with C++, you don't need executable code:
// Probe template
template <bool tf> struct probe { };
template <> struct probe<true> { typedef int t; };
// test for 8-bit char
typedef probe<CHAR_BIT == 8>::t is_char_8_bit;
> If I am a beginner, what is the number of technicalities I
> must know it order to understand the second way of declaring
> things?
A few; of course, when I was a complete Ada beginner (not that
I'm much more than that now) I was always thrown by the use of
apostrophes as attribute designators. When I see
for Intensity'Size use 8;
it makes me want to go off searching for where the string ends
and trying to figure out what's going on. I also don't know that
a beginner finds the notion of an enumerated type declared as an
array index to be immediately obvious.
> (I'll leave out that the declare-like-used rule in typedef is
> confusing many. Maybe that's because the typdef-ed name isn't in some
> fixed position in the typedef.)
next prev parent reply other threads:[~2011-08-12 13:15 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <fb9f787c-af06-427a-82b6-b0684e8dcbc5@s2g2000vby.googlegroups.com>
[not found] ` <j1kaj8$dge$1@adenine.netfront.net>
[not found] ` <1e292299-2cbe-4443-86f3-b19b8af50fff@c29g2000yqd.googlegroups.com>
[not found] ` <j1tha5$11q5$1@adenine.netfront.net>
[not found] ` <1fd0cc9b-859d-428e-b68a-11e34de84225@gz10g2000vbb.googlegroups.com>
2011-08-10 19:05 ` Why use C++? Niklas Holsti
2011-08-10 22:37 ` Randy Brukardt
2011-08-10 22:49 ` Ludovic Brenta
2011-08-12 4:54 ` Randy Brukardt
2011-08-11 7:54 ` Dmitry A. Kazakov
2011-08-11 8:20 ` Jed
2011-08-11 9:13 ` Dmitry A. Kazakov
2011-08-11 10:57 ` Jed
2011-08-11 11:43 ` Georg Bauhaus
2011-08-12 5:07 ` Jed
2011-08-11 13:11 ` Nomen Nescio
2011-08-11 15:11 ` Paul
2011-08-12 5:15 ` Jed
2011-08-12 21:39 ` Fritz Wuehler
2011-08-14 6:52 ` Jed
2011-08-14 8:13 ` Nomen Nescio
2011-08-11 15:09 ` Dmitry A. Kazakov
2011-08-12 5:03 ` Jed
2011-08-12 8:32 ` Georg Bauhaus
2011-08-12 13:15 ` Hyman Rosen [this message]
2011-08-12 22:09 ` Randy Brukardt
2011-08-12 15:14 ` Jed
2011-08-12 17:20 ` Georg Bauhaus
2011-08-12 19:51 ` Jed
2011-08-12 21:22 ` Ludovic Brenta
2011-08-14 7:00 ` Jed
2011-08-16 13:06 ` Ludovic Brenta
2011-08-13 9:37 ` Georg Bauhaus
2011-08-14 5:22 ` Jed
2011-08-13 10:27 ` Georg Bauhaus
2011-08-14 5:35 ` Jed
2011-08-14 20:13 ` Georg Bauhaus
2011-08-15 11:38 ` Georg Bauhaus
2011-08-13 11:02 ` Georg Bauhaus
2011-08-14 5:56 ` Jed
2011-08-12 9:21 ` Dmitry A. Kazakov
2011-08-12 13:26 ` Jed
2011-08-12 14:30 ` Dmitry A. Kazakov
2011-08-12 19:06 ` Jed
2011-08-12 20:05 ` Dmitry A. Kazakov
2011-08-13 7:53 ` Jed
2011-08-13 9:15 ` Dmitry A. Kazakov
2011-08-13 9:29 ` Ian Collins
2011-08-13 9:52 ` Dmitry A. Kazakov
2011-08-13 11:10 ` Ian Collins
2011-08-13 11:46 ` Georg Bauhaus
2011-08-13 20:30 ` Ian Collins
2011-08-13 11:54 ` Brian Drummond
2011-08-13 13:12 ` Simon Wright
2011-08-14 11:01 ` Brian Drummond
2011-08-14 4:54 ` Jed
2011-08-14 4:35 ` Jed
2011-08-14 6:46 ` Dmitry A. Kazakov
2011-08-14 4:49 ` Jed
2011-08-14 6:51 ` Dmitry A. Kazakov
2011-08-14 4:29 ` Jed
2011-08-14 7:29 ` Dmitry A. Kazakov
2011-08-16 8:18 ` Nick Keighley
2011-08-16 8:47 ` Dmitry A. Kazakov
2011-08-16 9:52 ` Nick Keighley
2011-08-16 10:39 ` Dmitry A. Kazakov
2011-08-16 10:23 ` Georg Bauhaus
2011-08-16 10:58 ` Dmitry A. Kazakov
2011-08-16 11:44 ` Georg Bauhaus
2011-08-16 14:51 ` Bill Findlay
2011-08-16 19:13 ` Dmitry A. Kazakov
2011-08-16 19:23 ` Bill Findlay
2011-08-12 11:48 ` Stuart Redmann
2011-08-12 13:12 ` Vinzent Hoefler
2011-08-12 15:50 ` Stuart Redmann
2011-08-12 17:02 ` Bill Findlay
2011-08-15 12:59 ` Vinzent Hoefler
2011-08-12 5:02 ` Randy Brukardt
2011-08-12 5:16 ` Robert Wessel
2011-08-12 16:39 ` Adam Beneschan
2011-08-12 5:24 ` Jed
2011-08-12 6:51 ` Paavo Helde
2011-08-12 7:41 ` Georg Bauhaus
2011-08-12 15:50 ` Fritz Wuehler
2011-08-12 19:59 ` Jed
2011-08-13 8:06 ` Stephen Leake
2011-08-12 9:40 ` Dmitry A. Kazakov
2011-08-12 9:45 ` Ludovic Brenta
2011-08-12 10:48 ` Georg Bauhaus
2011-08-12 15:56 ` Ludovic Brenta
2011-08-13 8:08 ` Stephen Leake
2011-08-18 13:39 ` Louisa
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox