From: Georg Bauhaus <sb463ba@l1-hrz.uni-duisburg.de>
Subject: Re: "Must instantiate controlled types at library level." Why?
Date: Mon, 17 May 2004 16:31:10 +0000 (UTC)
Date: 2004-05-17T16:31:10+00:00 [thread overview]
Message-ID: <c8apce$t0b$1@a1-hrz.uni-duisburg.de> (raw)
In-Reply-To: 1084806067.140519@master.nyc.kbcfp.com
Hyman Rosen <hyrosen@mail.com> wrote:
: template <typename T, unsigned N> struct array {
: T a[N];
: T &operator[](unsigned i) { return i < N ? a[i] : throw i; }
: };
:
: Now I can declare my array, for example, as array<double, 100>,
: and pass it around by value. I haven't used #include.
Right. And now, to the Ada fans, from a practical point of view,
how does this compare to Ada arrays?
At the C++ source level: you don't see any difference at the point of use
because operator[] looks like always.
In the compiler: I'm not sure, maybe some C++ compilers have switches
for std [] vs .at?
But, as Dmitry says, a useful template has been built by hand from
the small things. (Lisp even gives you the lools for new syntax
(re)definitions...) Is an approach based on discipline and
conventinalism on a par with language definitions?
Somewhat related to this, you can have template parameter constraints
like Can_This or Can_That, as explained in
http://www.research.att.com/~bs/bs_faq2.html#constraints
But is it the same as saying
generic
type G is new C with private;
...
next prev parent reply other threads:[~2004-05-17 16:31 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-11 23:04 "Must instantiate controlled types at library level." Why? Peter C. Chapin
2004-05-12 1:03 ` Jeffrey Carter
2004-05-12 10:47 ` Peter C. Chapin
2004-05-12 11:25 ` Ludovic Brenta
2004-05-12 14:41 ` Martin Krischik
2004-05-13 2:20 ` Peter C. Chapin
2004-05-12 11:55 ` Martin Krischik
2004-05-13 2:59 ` Peter C. Chapin
2004-05-13 7:10 ` Martin Krischik
2004-05-13 10:36 ` Peter C. Chapin
2004-05-13 11:18 ` Martin Krischik
2004-05-13 22:27 ` Peter C. Chapin
2004-05-13 22:54 ` Freejack
2004-05-14 7:13 ` Martin Krischik
2004-05-14 13:50 ` Xenos
2004-05-14 17:27 ` Georg Bauhaus
2004-05-14 17:58 ` Xenos
2004-05-14 18:49 ` Martin Krischik
2004-05-14 19:40 ` Xenos
2004-05-14 22:47 ` Ludovic Brenta
2004-05-15 8:34 ` Martin Krischik
2004-05-16 2:55 ` Hyman Rosen
2004-05-16 13:48 ` Ludovic Brenta
2004-05-17 2:30 ` Hyman Rosen
2004-05-17 5:39 ` Martin Dowie
2004-05-17 7:48 ` Ludovic Brenta
2004-05-17 15:01 ` Hyman Rosen
2004-05-17 16:31 ` Georg Bauhaus [this message]
2004-05-17 17:40 ` Hyman Rosen
2004-05-17 19:17 ` Georg Bauhaus
2004-05-17 6:24 ` Martin Krischik
2004-05-17 19:48 ` James Kanze
2004-05-18 6:27 ` Martin Krischik
2004-05-17 12:33 ` Dmitry A. Kazakov
2004-05-17 13:46 ` Martin Krischik
2004-05-17 15:03 ` Dmitry A. Kazakov
2004-05-17 16:02 ` Alexander E. Kopilovich
2004-05-18 7:48 ` Dmitry A. Kazakov
2004-05-19 1:20 ` Alexander E. Kopilovich
2004-05-19 9:59 ` Dmitry A. Kazakov
2004-05-19 12:38 ` Hyman Rosen
2004-05-19 13:28 ` Dmitry A. Kazakov
2004-05-19 13:09 ` Georg Bauhaus
2004-05-19 13:44 ` Hyman Rosen
2004-05-19 14:17 ` Dmitry A. Kazakov
2004-05-19 14:15 ` Dmitry A. Kazakov
2004-05-21 11:39 ` Georg Bauhaus
2004-05-21 20:33 ` Dmitry A. Kazakov
[not found] ` <c8mkor$rlq$1@a1-hrz.uni-duisburg.de>
2004-05-23 1:28 ` Hyman Rosen
2004-05-23 8:55 ` Dmitry A. Kazakov
2004-05-24 11:38 ` Georg Bauhaus
2004-05-24 13:57 ` Dmitry A. Kazakov
2004-05-24 14:40 ` Georg Bauhaus
2004-05-25 8:32 ` Dmitry A. Kazakov
2004-05-25 15:47 ` Georg Bauhaus
[not found] ` <URJ8Eg0vzF@VB1162.spb.edu>
2004-05-17 16:50 ` Marius Amado Alves
2004-05-18 8:27 ` Dmitry A. Kazakov
2004-05-15 17:20 ` Pascal Obry
2004-05-13 19:33 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox