From: "Robert Kawulak" <tigrisek@interia.pl>
Subject: Re: Ada Popularity: Comparison of Ada/Charles with C++ STL (and Perl)
Date: Wed, 29 Sep 2004 20:16:20 +0200
Date: 2004-09-29T20:16:20+02:00 [thread overview]
Message-ID: <cjeurr$bvp$5@nemesis.news.tpi.pl> (raw)
In-Reply-To: 3060085.UHp9MgIIe7@linux1.krischik.com
Hi all,
>> Yup, you're absolutely right. But Stlport implementation always stores
>> '\0' at the end, so std::string::c_str() boils down to returning a
>> pointer. On the other hand, the GCC implementation writes terminating
>> '\0'
>> every time this function is called. However, this is still constant
>> complexity and a little overhead contrary to what many people suspect -
>> that converting std::string to char * requires copying whole the contents
>> of the string to some temporary buffer.
>
> But that means that the strings need "capacity () - size () >= 1" so that
> there is allways one spare byte for the '\0'.
Well, in those particular implementations yes, but AFAIK it's not imposed by
the standard.
> I was thinking about "capacity () - size () == 0" - then c_str() would
> need
> to resize. Doesn't happen in your implementation - but is this valid for
> all.
As said above, it's not. An implementation can choose freely, but I suspect
that vast majority use "capacity () - size () >= 1" due to efficiency -
after all this one extra byte doesn't cost a lot compared to creating new
buffer for whole the string and copying it in case of a call to c_str().
>> I can't agree with that at all. In C++ there is almost always an
>> alternative. You may use std::vector<> instead of arrays, std::auto_ptr<>
>> instead of naked pointers etc. But still you have a choice - if you
>> really
>> need to have a total low-level control on your program, you may have it.
>> Otherwise use higher abstraction-level utilities. What you say might be
>> eventually true for C, but not for C++. And the difference between the
>> two
>> is enormous, unfortunately many people think C and C++ is the same...
>
> Not quite true. I did have to make Ada::Range<class type, type First, type
> Last> myself. Actually, I still have to make it. My Current implementation
> is for the old standart (as in Ada::IntegerRange<int First, int Last>).
> C++
> has protection against buffer overruns - but the new JPEC Viruses work
> integer overurns.
That one is indeed missing in the standard (that's why I've used 'almost'
above ;-) and you have to make it on your own (fortunately it's a trivial
task, and you do it only once and then reuse).
> And there is no:
>
> typedef explicit int My_Int.
>
> And that means that
>
> typedef Ada :: Range <int, 1, 12> US_Hours;
> typedef Ada :: Range <int, 1, 12> Month;
>
> are the same for C++. But there are not in real live. And if I use:
>
> class US_Hours Ada :: Range <int, 1, 12> {};
> class Month Ada :: Range <int, 1, 12> {};
>
> I loose the constructors. So there is still something to be improved.
That's all very true what you say and it IS going to be improved - there are
already papers submitted to the C++ standarisation commettee concerning
strongly-typed typedefs.
Best regards,
Robert Kawulak
next prev parent reply other threads:[~2004-09-29 18:16 UTC|newest]
Thread overview: 229+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-22 0:21 Ada Popularity: Comparison of Ada/Charles with C++ STL (and Perl) Kevin Cline
2004-09-22 2:16 ` Pylinius
2004-09-22 8:50 ` Björn Persson
2004-09-22 13:38 ` Benjamin Ketcham
2004-09-22 14:07 ` Hyman Rosen
2004-09-22 15:16 ` Cesar Rabak
2004-09-23 8:22 ` Kevin Cline
2004-09-23 10:52 ` Anders Wirzenius
2004-09-23 10:54 ` stephane richard
2004-09-23 11:17 ` Jean-Pierre Rosen
2004-09-23 11:47 ` Marius Amado Alves
2004-09-23 13:34 ` Anders Wirzenius
2004-09-23 16:53 ` Warren W. Gay VE3WWG
2004-09-23 18:30 ` Kevin Cline
2004-09-23 19:00 ` Marius Amado Alves
2004-09-24 6:04 ` [OT]Screen ergonomics, was " Anders Wirzenius
2004-09-26 7:22 ` Kevin Cline
2004-09-23 17:19 ` Cesar Rabak
2004-09-23 8:51 ` Kevin Cline
2004-09-23 11:01 ` Georg Bauhaus
2004-09-23 15:59 ` Matthew Heaney
2004-09-23 16:38 ` Kevin Cline
2004-09-24 2:47 ` Matthew Heaney
2004-09-24 13:43 ` Hyman Rosen
2004-09-24 17:47 ` Mark Lorenzen
2004-09-24 18:16 ` Matthew Heaney
2004-09-29 19:29 ` Mark Lorenzen
2004-09-29 22:44 ` Matthew Heaney
2004-09-25 14:09 ` Martin Krischik
2004-09-26 7:08 ` Kevin Cline
2004-09-26 15:13 ` Matthew Heaney
2004-09-23 19:10 ` jayessay
2004-09-23 21:13 ` Adam Ruth
2004-09-27 2:12 ` Keith H Duggar
2004-09-27 14:21 ` Adam Ruth
2004-09-27 14:51 ` Chris Humphries
2004-09-27 17:10 ` Adam Ruth
2004-09-27 20:16 ` Keith H Duggar
2004-09-27 21:15 ` Chris Humphries
2004-09-28 4:46 ` Keith H Duggar
2004-09-27 20:34 ` Kevin Cline
2004-09-27 21:15 ` Adam Ruth
2004-09-23 23:05 ` Brian May
2004-09-24 3:06 ` Matthew Heaney
2004-09-24 3:52 ` Randy Brukardt
2004-09-24 5:15 ` Matthew Heaney
2004-09-24 19:12 ` Kevin Cline
2004-09-24 20:54 ` Randy Brukardt
2004-09-24 21:23 ` Matthew Heaney
2004-09-27 13:22 ` Chris Humphries
2004-09-27 13:45 ` Chris Humphries
2004-09-27 21:31 ` Kevin Cline
2004-09-27 23:51 ` Brian May
2004-09-28 12:21 ` Chris Humphries
2004-09-26 17:10 ` jayessay
2004-09-26 20:00 ` Georg Bauhaus
2004-09-27 14:45 ` jayessay
2004-09-24 0:19 ` Stephen Leake
2004-09-24 14:54 ` Cesar Rabak
2004-09-22 15:27 ` James Alan Farrell
2004-09-22 21:24 ` Simon Wright
2004-09-23 0:03 ` Brian May
2004-09-23 9:17 ` Kevin Cline
2004-09-23 0:44 ` Jeffrey Carter
2004-09-23 11:08 ` Georg Bauhaus
2004-09-23 8:15 ` Martin Krischik
2004-09-23 16:20 ` Matthew Heaney
2004-09-23 19:23 ` Simon Wright
2004-09-24 7:19 ` Martin Krischik
2004-09-24 16:31 ` Matthew Heaney
2004-09-24 19:24 ` Kevin Cline
2004-09-25 14:04 ` Martin Krischik
2004-09-26 10:36 ` Robert Kawulak
2004-09-26 15:35 ` Martin Krischik
2004-09-28 17:46 ` Robert Kawulak
2004-09-29 7:49 ` Martin Krischik
2004-09-29 12:01 ` Xenos
2004-09-29 18:16 ` Robert Kawulak [this message]
2004-09-30 15:55 ` Martin Krischik
2004-09-27 22:22 ` Kevin Cline
2004-09-28 7:51 ` Martin Krischik
2004-09-29 3:04 ` Kevin Cline
2004-09-29 6:03 ` Dale Stanbrough
2004-09-29 13:31 ` Georg Bauhaus
2004-09-29 13:46 ` Matthew Heaney
2004-09-30 3:42 ` Kevin Cline
2004-09-30 7:54 ` Dale Stanbrough
2004-09-30 16:50 ` Matthew Heaney
2004-10-01 0:04 ` Kevin Cline
2004-10-01 12:25 ` Georg Bauhaus
2004-10-02 7:35 ` K
2004-10-02 10:00 ` Brian May
2004-10-02 20:39 ` Kevin Cline
2004-10-03 2:17 ` Brian May
2004-10-02 13:40 ` Matthew Heaney
2004-10-02 23:33 ` Randy Brukardt
2004-10-03 12:47 ` Stephen Leake
2004-09-30 19:01 ` Björn Persson
2004-09-30 23:54 ` Kevin Cline
2004-10-01 16:11 ` Björn Persson
2004-10-02 6:48 ` K
2004-10-02 10:41 ` Björn Persson
2004-10-02 13:32 ` Matthew Heaney
2004-10-04 9:02 ` Ole-Hjalmar Kristensen
2004-09-23 9:00 ` Kevin Cline
2004-09-23 11:27 ` Ole-Hjalmar Kristensen
2004-09-23 19:11 ` Kevin Cline
2004-09-23 21:01 ` Alexander E. Kopilovich
2004-09-26 6:53 ` Kevin Cline
2004-09-26 15:29 ` Alexander E. Kopilovich
2004-09-23 21:54 ` Eric Jacoboni
2004-09-24 9:44 ` Ole-Hjalmar Kristensen
2004-09-24 9:50 ` Georg Bauhaus
2004-09-24 13:47 ` Matthew Heaney
2004-09-24 14:14 ` Dmitry A. Kazakov
2004-09-25 14:17 ` Martin Krischik
2004-09-27 8:12 ` Dmitry A. Kazakov
2004-09-27 12:59 ` Georg Bauhaus
2004-09-27 13:53 ` Dmitry A. Kazakov
2004-09-26 7:17 ` Kevin Cline
2004-09-27 8:19 ` Dmitry A. Kazakov
2004-09-27 13:03 ` Georg Bauhaus
2004-09-27 14:00 ` Dmitry A. Kazakov
2004-09-24 16:28 ` Kevin Cline
2004-09-24 17:45 ` Georg Bauhaus
2004-09-24 20:14 ` Matthew Heaney
2004-09-24 20:10 ` Frank J. Lhota
2004-09-27 8:29 ` Dmitry A. Kazakov
2004-09-26 7:13 ` Kevin Cline
2004-09-26 15:15 ` Matthew Heaney
2004-09-27 14:31 ` Kevin Cline
2004-09-27 15:05 ` Dmitry A. Kazakov
2004-09-28 4:22 ` Kevin Cline
2004-09-28 8:20 ` Dmitry A. Kazakov
2004-09-28 23:26 ` Robert Kawulak
2004-09-29 12:19 ` Dmitry A. Kazakov
2004-09-30 18:52 ` Robert Kawulak
2004-10-01 7:55 ` Dmitry A. Kazakov
2004-10-03 19:35 ` Robert Kawulak
2004-10-04 10:24 ` Dmitry A. Kazakov
2004-10-06 17:28 ` Robert Kawulak
2004-10-07 8:24 ` Dmitry A. Kazakov
2004-10-10 21:09 ` Robert Kawulak
2004-10-11 8:08 ` Dmitry A. Kazakov
2004-10-15 9:34 ` Robert Kawulak
2004-10-15 16:58 ` Martin Krischik
2004-09-29 15:44 ` Matthew Heaney
2004-09-30 18:27 ` Robert Kawulak
2004-09-28 17:21 ` Robert Kawulak
2004-09-29 1:38 ` Georg Bauhaus
2004-09-29 18:08 ` Robert Kawulak
2004-09-30 18:30 ` Georg Bauhaus
2004-09-29 8:08 ` Dmitry A. Kazakov
2004-09-29 18:11 ` Robert Kawulak
2004-09-30 8:57 ` Dmitry A. Kazakov
[not found] ` <cji06f$17a$2@atlantis.news.tpi.pl>
2004-10-01 8:58 ` Dmitry A. Kazakov
2004-10-03 19:53 ` Robert Kawulak
2004-10-04 10:15 ` Dmitry A. Kazakov
2004-10-04 12:16 ` Matthew Heaney
2004-10-04 13:21 ` Dmitry A. Kazakov
2004-10-06 17:20 ` Robert Kawulak
2004-10-07 10:08 ` Dmitry A. Kazakov
2004-10-10 22:21 ` Robert Kawulak
2004-10-11 8:46 ` Dmitry A. Kazakov
2004-10-15 9:25 ` Robert Kawulak
2004-10-15 11:56 ` Dmitry A. Kazakov
2004-10-20 20:06 ` Robert Kawulak
2004-10-21 2:51 ` Kevin Cline
2004-10-21 8:39 ` Dmitry A. Kazakov
2004-10-27 21:41 ` Robert Kawulak
2004-10-01 13:02 ` Robert Kawulak
2004-10-28 10:26 ` Larry Kilgallen
2004-09-27 16:21 ` Matthew Heaney
2004-09-28 2:47 ` Kevin Cline
2004-09-28 4:03 ` Brian May
2004-09-28 4:46 ` Matthew Heaney
2004-09-29 3:14 ` Kevin Cline
2004-09-29 3:50 ` Matthew Heaney
2004-09-29 3:52 ` Matthew Heaney
2004-09-29 13:44 ` Matthew Heaney
2004-09-26 6:32 ` Kevin Cline
2004-09-26 15:05 ` Matthew Heaney
2004-09-27 14:35 ` Kevin Cline
2004-09-23 19:30 ` jayessay
2004-09-23 19:42 ` Alexander E. Kopilovich
2004-09-22 21:05 ` Georg Bauhaus
2004-09-23 9:20 ` Kevin Cline
2004-09-23 16:58 ` Warren W. Gay VE3WWG
2004-09-23 6:24 ` Matthew Heaney
2004-09-23 11:23 ` Jeff C r e e.m
2004-09-23 11:35 ` Georg Bauhaus
2004-09-23 17:05 ` Pascal Obry
2004-09-23 17:07 ` Pascal Obry
2004-09-23 18:30 ` Matthew Heaney
2004-09-23 19:31 ` Simon Wright
2004-09-24 0:09 ` Stephen Leake
2004-09-25 10:41 ` Simon Wright
2004-09-23 18:24 ` Kevin Cline
2004-09-23 17:12 ` Dan Andreatta
2004-09-23 18:10 ` Pascal Obry
2004-09-23 19:21 ` Eric Jacoboni
2004-09-23 19:31 ` Ed Falis
2004-09-23 19:37 ` Eric Jacoboni
2004-09-24 20:09 ` Kevin Cline
2004-09-25 0:18 ` Eric Jacoboni
2004-09-26 6:37 ` Kevin Cline
2004-09-26 14:57 ` Matthew Heaney
2004-09-23 19:24 ` Eric Jacoboni
2004-09-23 21:30 ` Eric Jacoboni
2004-09-26 11:44 ` Jacob Sparre Andersen
2004-09-26 17:02 ` jayessay
2004-09-24 8:26 ` Ole-Hjalmar Kristensen
2004-09-23 22:08 ` Anders Gidenstam
2004-09-24 8:10 ` Ole-Hjalmar Kristensen
2004-09-24 17:43 ` Dan Andreatta
2004-09-24 17:40 ` Dan Andreatta
2004-09-24 18:50 ` Pascal Obry
2004-09-23 22:34 ` Randy Brukardt
2004-09-23 23:11 ` Dale Stanbrough
2004-09-24 1:57 ` Matthew Heaney
2004-09-24 6:32 ` Dale Stanbrough
2004-09-24 21:01 ` Randy Brukardt
2004-09-24 0:43 ` Jeffrey Carter
2004-09-24 1:51 ` Matthew Heaney
2004-09-24 20:21 ` Kevin Cline
2004-09-26 11:09 ` Jacob Sparre Andersen
2004-09-27 13:49 ` Björn Persson
2004-10-12 5:21 ` Ada Popularity: Comparison of languages Brian May
2004-10-12 11:43 ` Peter Hermann
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox